какие виды окон различают в ос windows

Окна в Windows: что это такое, их виды и как сними работать

Всем привет! Продолжаем с вами изучать компьютерную грамотность. И если вы читали мои предыдущие статьи, то тогда вы уже много знаете и умеете.

Думаю, что сейчас нет такого человека кто не сталкивался бы с таким понятием как – окно Windows. Но, а если вы являетесь таковым, то уж вам точно следует прочитать эту статью до конца.

А для тех, кто уже имеет представление об этом тоже будет неплохо ознакомиться с этим материалом.

Почему? Спросите вы.

Да потому что вся работа за компьютером где установлена операционная система виндовс связана с управлением этими самыми окнами. И вы просто можете не знать всех тонкостей и нюансов работы с ними.

А в этой самой статье мы как раз и рассмотрим их.

Что это такое

Как мы уже знаем из одной из предыдущих статей – Windows в переводе означает «окна».

Они являются отличительной частью этой ОС. С их помощью пользователям предоставили более удобную работу с приложениями, программами, файлами и папками.

какие виды окон различают в ос windows

И как наверно вы уже заметили, чтобы вы не открыли это, отображается в прямоугольной области. Вот эта область и называется окно.

Основные виды

В зависимости от тех задач, которые предстоит выполнить пользователю окна можно подразделить на следующие виды;

Программные (приложений)

Используют для открытия программ и приложений, установленных на ваш компьютер. И представляют они рабочую область в которой присутствуют разные элементы управления приложением или программой.

какие виды окон различают в ос windows

какие виды окон различают в ос windows

Более подробно о компьютерных программах и приложениях можете почитать здесь.

Документы

Открываются они только в окне своего приложения и отображаются в них документы, созданные в программах для Windows.

После открытия становится доступна рабочая область в которой создается или редактируется различная информация с помощью устройств ввода таких как клавиатура и компьютерная мышь.

Ярким примером является документ Word.

какие виды окон различают в ос windows

Запросы

Они появляются поверх всех остальных во время работы за ПК. В них отображаются запросы на подтверждение тех или иных действий или содержит запрос на определенную информацию.

Для них существует два действия предоставить ответ на запрос или подтвердить действие, или просто закрыть.

Еще их называют диалоговые, а они в свою очередь могут быть:

Модальные – это окна после появления которых блокируется приложение, и чтобы продолжить работу здесь следует завершить все действия.

какие виды окон различают в ос windows

По предложенным действиям их можно подразделить на три типа:

Немодальные – после появления приложение продолжает работать. Его можно свернуть или закрыть и продолжить работу в приложении.

Контекстное меню

Этот вид окон скрыт от глаз пользователей и вывести их можно нажатием правой кнопкой мыши. Они могут содержать дополнительные команды для программ и приложений.

какие виды окон различают в ос windows

Всплывающие

В основном они используются системой для информирования или с требованием совершить то или иное действие.

какие виды окон различают в ос windows

А также они часто появляются при работе в веб – браузерах при посещении различных сайтов. Но их появление можно легко запретить в настройках браузера.

Давайте я расскажу коротко об этих настройках на примере Яндекс.Браузера

Переходим в настройки

какие виды окон различают в ос windows

Ищем «сайты» и жмем на «расширенные настройки сайтов»

какие виды окон различают в ос windows

Ставим галочку «разрешены» или «запрещены»

какие виды окон различают в ос windows

Но эти вопросы мы будем рассматривать в рубрике «Освоение интернета» когда будем с вами изучать веб-браузеры. Так что подписывайтесь на обновления блога чтобы не пропустить.

О том, как это сделать можете почитать здесь.

Активные

Активным окном называют то которое расположено поверх остальных и в котором мы на данный момент работаем. Также можно встретить такое название как «рабочее окно».

При работе с несколькими окнами переключаться между ними можно с помощью мыши или горячих клавиш клавиатуры.

С видами разобрались. Думаю, что все понятно. Если нет не стесняйтесь задавайте вопросы в комментариях.

Теперь давайте переходить непосредственно к работе.

Работа с окнами Windows

Любое окно включает в себя элементы управления. Они могут отличаться в зависимости от того какой тип окна открыт. Но основные всё-таки присутствуют во всех видах.

Давайте разберем максимальное количество элементов на примере папки «мой компьютер». Так как с папками приходится работать очень часто.

Элементы управления

какие виды окон различают в ос windows

И так как мы видим на скриншоте показаны где располагаются основные элементы и их названия.

1 Системный значок

Этот значок находится верхнем левом углу и при нажатии на него открывается меню управления.

какие виды окон различают в ос windows

С помощью которого можно выполнить в зависимости от его расположения на мониторе следующие действия;

2 Заголовок

Выводится вверху и отображает название открытого объекта. В нашем случае «Этот компьютер». Если окно является активным, то он подсвечивается более ярким цветом.

При двукратном нажатии мыши на заголовок, оно раскроется до размеров вашего экрана.

3 Панель быстрого доступа

С помощью отображаемых иконок можно к примеру, посмотреть свойства открытого окна или создать папку в рабочей области.

Также можно настроить отображение элементов.

Для этого жмем на стрелочку, расположенную рядом со значками и ставим галочки напротив тех значков, которые должны отображаться.

какие виды окон различают в ос windows

А также здесь можно выбрать место расположения этой панели.

4 Кнопки управления

С помощью этих кнопок можно свернуть, развернуть или закрыть окно.

5 Строка меню и панель инструментов

Расположена она под заголовком и содержит пункты при нажатии на которые мы получаем доступ к определенным командам в панели инструментов.

Команды различны для разных видов окон все зависит от того какую задачу они выполняют.

6 Панель задач (инструментов)

В панели в нашем случае предоставляется быстрый доступ к папкам и файлам наиболее просматриваемым.

Если это окно приложений, то там могут быть доступны к выполнению определенные задачи.

какие виды окон различают в ос windows

8 Адресная строка

С помощью этой строки возможен быстрый переход к другим папкам и разделам нажав на стрелку рядом с названием открытого раздела

Или же можно просто ввести соответствующий адрес папки.

Но как показывает практика эти варианты не очень удобны. Проще воспользоваться «Панелью задач».

9 Рабочая область

Это самая большая область, в которой располагаются объекты находящиеся внутри папки.

10 Кнопки отображения элементов

С помощью этих кнопок возможно настроить отображение объектов в виде таблицы или больших эскизов.

11 Строка состояния

Строка состояния выполняет информационную роль.
Сколько находится объектов в папке и сколько из них выбрано

12 Полоса прокрутки

Появляется если объекты не умещаются в рабочей области. И чтобы посмотреть невидные глазу требуется прокрутить вниз или бок. Наведя курсор на полосу и зажав левую кнопку компьютерной мыши.

13 Угол и границы

Наведя курсор мыши на угол или границу и нажав левую кнопку мыши можно увеличить или уменьшить размеры окна двигая компьютерную мышь по столу.

Дополнительные элементы

Еще хотелось бы отметить два элемента управления находящихся на панели задач рабочего стола

Если вы незнакомы с рабочем столом и панелью задач в операционной системе виндовс то рекомендую прочитать статью про «Рабочий стол Windows»

Свернуть все окна

Эта кнопка находится в правом углу панели задач

какие виды окон различают в ос windows

Организация отображения окон

Для организации открытых окон следует навести курсор мыши на свободную область панели задач и нажать правой кнопкой в появившемся меню выбираем нужную нам настройку.

какие виды окон различают в ос windows

Элементы управления в диалоговых окнах

Наличие этих элементов (не обязательно всех сразу) выделяют их от всех других.

Вкладки – как правило располагаются под заголовком

какие виды окон различают в ос windows

Флажки – используются для отображения различных параметров со значением «да» или «нет». Если галочка стоит в квадратике, то «да» если ее там нет, то тогда «нет»

какие виды окон различают в ос windows

Радиокнопки – предоставляют возможность выбора одного варианта из нескольких.

какие виды окон различают в ос windows

Текстовые поля – используются для ввода определенной информации которая должна будет использоваться в программе.

какие виды окон различают в ос windows

Цифровые счётчики – используются для ввода числовых значение путем нажатия стрелок вверх или вниз.

какие виды окон различают в ос windows

Списки – предоставляется для выбора определенного значения.

какие виды окон различают в ос windows

Раскрывающиеся списки – нажав стрелку открывается список и после выбора нужного значения оно будет отображается.

какие виды окон различают в ос windows

Ползунковые регуляторы – с помощью них выбираем значение из определенного диапазона.

какие виды окон различают в ос windows

Командные кнопки – нужны для выбора определенного действия. Например, сохранить, применить, отмена и.т.д.

какие виды окон различают в ос windows

Горячие клавиши

Для более быстрой работы за компьютером часть операций по управлению можно выполнять с помощью клавиш клавиатуры.

Давайте рассмотрим какие именно сочетания клавиш применяются при работе с окнами.

1 Alt+Tab – переключение между открытыми окнами

После нажатия клавиш появится панель где будут располагаться все открытые в данный момент окна.

какие виды окон различают в ос windows

И не отпуская клавишу Alt нажимаем кнопку Tab переключаясь между ними. После выбора нужного отпускаем обе кнопки.

2 Свернуть и развернуть все окна отобразив или скрыв рабочий стол

3 Свернуть и развернуть активное окно

4 Закрыть активное окно

5 Последовательно перебирать иконки панели задач

6 Запустить приложение иконка которого закреплена на панели задач и соответствует цифрам от 0 до 9

7 Сворачивает все окна кроме активного (вторым нажатие развернуть)

8 Сместить окно к левому краю вашего экрана

Win + стрелка влево

9 Сместить окно к правому краю вашего экрана

Win + стрелка в право

10 Развернуть на весь экран. Если оно было смещено к краю экрана, то оно займет позицию в верхней части экрана заняв четверть экрана

Win + стрелка вверх

11 Сворачивает активное окно. Если оно было смещено к краю экрана, то оно займет позицию в нижней части экрана заняв четверть экрана

12 Если у вас несколько мониторов, то сочетание этих клавиш поможет перенести окно на другой монитор

Win + Shift + стрелка влево или вправо

Мнение автора

В моей практике мне очень часто приходилось пользоваться всеми элементами управления окнами так как я раньше проходил службу в УИС и работать за компьютером приходилось очень часто.

И скажу я вам одно что неважно в каких именно целях вы решили использовать компьютер для ведения бизнеса или просто в домашних условиях. Вам просто необходимо понимать его и уметь на нем работать.

На этом все ждите новых статей на блоге пишите комментарии делитесь информацией в социальных сетях. Всем пока.

Источник

Характеристики окон

В этом обзоре обсуждаются функции Windows, такие как типы окон, состояния, размер и расположение.

Типы окон

Этот раздел содержит следующие разделы, описывающие типы окон.

Перекрывающиеся Windows

Перекрытое окно — это окно верхнего уровня (не дочернее окно) с заголовком, границей и клиентской областью. Он предназначен для использования в качестве главного окна приложения. У него также может быть меню окна, кнопки сворачивания и развертывания, полосы прокрутки. Перекрытое окно, используемое в качестве главного окна, обычно включает все эти компоненты.

Windows всплывающих окон

Дочерние Windows

Дочернее окно имеет клиентскую область, но не имеет других функций, если они не запрашиваются явным образом. Приложение может запрашивать строку заголовка, меню окна, кнопки сворачивания и развернуть, границу и полосы прокрутки для дочернего окна, но дочернее окно не может иметь меню. Если приложение задает маркер меню при регистрации класса дочернего окна или при создании дочернего окна, то маркер меню игнорируется. Если стиль границы не указан, система создает безграницуное окно. Приложение может использовать дочерние окна без границ для разделения клиентской области родительского окна, сохраняя при этом невидимые для пользователя подразделения.

В этом разделе обсуждаются следующие аспекты дочерних окон:

Направляющ

Система всегда позиционирует дочернее окно относительно левого верхнего угла клиентской области родительского окна. Ни одна часть дочернего окна не отображается вне границ родительского окна. Если приложение создает дочернее окно, размер которого больше родительского окна или размещает дочернее окно, чтобы часть или все дочернее окно выходили за границы родительского элемента, система обрезает дочернее окно. Это значит, что часть за пределами клиентской области родительского окна не отображается. Действия, влияющие на родительское окно, также могут повлиять на дочернее окно, как показано ниже.

Родительское окноДочернее окно
УничтожаютсяУничтожено до уничтожения родительского окна.
СкрытыйСкрывается перед тем, как родительское окно скрыто. Дочернее окно отображается только в том случае, если родительское окно является видимым.
ПеренестиПеремещено с клиентской областью родительского окна. Дочернее окно отвечает за рисование области клиента после перемещения.
УказанногоОтображается после отображения родительского окна.

Усечение

Связь с родительским окном

Родительское окно освобождает часть своей клиентской области дочернему окну, а дочернее окно получает все входные данные из этой области. Класс Window не обязательно должен быть одинаковым для всех дочерних окон родительского окна. Это означает, что приложение может заполнить родительское окно дочерними окнами, которые выглядят иначе и выполнять различные задачи. Например, диалоговое окно может содержать несколько типов элементов управления, каждое из которых дочернее окно принимает различные типы данных от пользователя.

Дочернее окно имеет только одно родительское окно, но у родительского окна может быть любое количество дочерних окон. Каждое дочернее окно, в свою очередь, может иметь дочерние окна. В этой цепочке окон каждое дочернее окно называется вложенным окном исходного родительского окна. Приложение использует функцию Child для определения того, является ли данное окно дочерним окном или вложенным окном данного родительского окна.

Функция енумчилдвиндовс перечисляет дочерние окна родительского окна. Затем енумчилдвиндовс передает этот обработчик в каждое дочернее окно в функцию обратного вызова, определенную приложением. Также перечисляются дочерние окна данного родительского окна.

Сообщения

Дочернее окно может иметь уникальный целочисленный идентификатор. При работе с окнами управления важны идентификаторы дочерних окон. Приложение направляет действие элемента управления, отправляя его сообщения. Приложение использует идентификатор дочернего окна элемента управления для направления сообщений в элемент управления. Кроме того, элемент управления отправляет сообщения уведомления родительскому окну. Сообщение уведомления содержит идентификатор дочернего окна элемента управления, который используется родительским элементом для указания того, какой элемент управления отправил сообщение. Приложение указывает идентификатор дочернего окна для других типов дочерних окон, присвоив параметру HMENU функции CreateWindowEx значение, а не маркер меню.

Многоуровневый Windows

Использование многоуровневого окна может значительно повысить производительность и визуальные эффекты для окна с сложной фигурой, анимировать ее фигуру или использовать альфа-эффекты смешения. Система автоматически создает и перерисовывает многослойные окна и окна базовых приложений. В результате этого многослойные окна отображаются плавно, без мерцания типов сложных окон. Кроме того, многоуровневые окна могут быть частично прозрачными, то есть с альфа-смешением.

начиная с Windows 8, WS _ EX _ можно использовать с дочерними окнами и окнами верхнего уровня. предыдущие версии Windows поддерживают WS _ EX _ только для окон верхнего уровня.

Message-Only Windows

Связи окон

Существует множество способов связи окна с пользователем или с другим окном. Окно может быть владельцем окна, передним окном или фоновым окном. Окно также имеет z-порядок относительно других окон. Дополнительные сведения см. в следующих разделах:

Передний и фоновый Windows

Каждый процесс может иметь несколько потоков выполнения, и каждый поток может создавать окна. Поток, создавший окно, с помощью которого в данный момент работает пользователь, называется основным потоком, а окно называется передним планом. Все остальные потоки являются фоновыми потоками, а окна, созданные фоновыми потоками, называются фоновыми окнами.

Каждый поток имеет уровень приоритета, определяющий количество времени ЦП, получаемого потоком. Хотя приложение может устанавливать уровень приоритета своих потоков, обычно поток переднего плана имеет немного более высокий уровень приоритета, чем фоновые потоки. Так как он имеет более высокий приоритет, поток переднего плана получает больше времени ЦП, чем в фоновых потоках. Поток переднего плана имеет нормальный базовый приоритет 9; фоновый поток имеет нормальный базовый приоритет 7.

Система позволяет определить, какие процессы могут устанавливать окно переднего плана. Процесс может задать окно переднего плана только в том случае, если:

Процессу может быть запрещено устанавливать окно переднего плана, даже если оно соответствует этим условиям.

Принадлежащие Windows

Перекрытие или всплывающее окно может принадлежать другому перекрытому или всплывающему окну. В качестве владельца накладывается несколько ограничений на окно.

Только перекрывающиеся или всплывающие окна могут быть окном-владельцем; дочернее окно не может быть окном-владельцем. Приложение создает собственное окно, указывая маркер окна владельца в качестве параметра хвндпарент объекта CreateWindowEx при создании окна с стилем _ меню WS _ OVERLAPPED или WS. Параметр хвндпарент должен обозначать перекрывающиеся или всплывающие окна. Если хвндпарент определяет дочернее окно, система назначает владение родительским окном верхнего уровня дочернего окна. После создания собственного окна приложение не может передать владение окном другому окну.

Диалоговые окна и окна сообщений являются собственными окнами по умолчанию. Приложение задает окно-владельца при вызове функции, которая создает диалоговое окно или поле сообщения.

Приложение может использовать функцию getHandler с флагом _ владельца GW для получения маркера для владельца окна.

Z-порядок

Z-порядок окна указывает на расположение окна в стеке перекрывающихся окон. Этот стек окна ориентирован на мнимую ось, ось z и расширяет наружу с экрана. Окно, расположенное в верхней части z-порядка, перекрывает все остальные окна. Окно в нижней части z-порядка перекрывается всеми остальными окнами.

Пользователь изменяет z-порядок, активируя другое окно. Система позиционирует активное окно в верхней части z-порядка для Windows того же типа. Когда окно поступает в начало z-порядка, дочерние окна должны быть. Функцию жеттопвиндов можно использовать для поиска всех дочерних окон родительского окна и возврата маркера в дочернее окно, которое имеет наибольшее значение в z-порядке. Функция жетнекствиндов Извлекает маркер в следующее или предыдущее окно в z-порядке.

Отображение состояния окна

В любой момент времени окно может быть активным или неактивным; скрытый или видимый; и сведены, развернутые или восстановленные. Эти качества называются совместно по мере отображения состояния окна. В следующих разделах описывается отображение состояния окна.

Активное окно

Активное окно — это окно верхнего уровня приложения, с которым пользователь работает в данный момент. Чтобы позволить пользователю легко определить активное окно, система размещает его в верхней части z-порядка и изменяет цвет заголовка и границы окна на определенные системой цвета в активном окне. Только окно верхнего уровня может быть активным окном. Когда пользователь работает с дочерним окном, система активирует родительское окно верхнего уровня, связанное с дочерним окном.

Отключенные Windows

Окно можно отключить. Отключенное окно не получает от пользователя ввод с клавиатуры или с помощью мыши, но может получать сообщения от других окон, из других приложений и из системы. Приложение обычно отключает окно, чтобы пользователь не использовал окно. Например, приложение может отключить кнопку отправки в диалоговом окне, чтобы пользователь не мог его выбрать. Приложение может включить отключенное окно в любое время; При включении окна восстанавливаются нормальные входные данные.

Если дочернее окно отключено, система передает входные сообщения дочернего элемента мыши родительскому окну. Для определения того, следует ли включить дочернее окно, в родительском окне используются сообщения. Дополнительные сведения см. в разделе Ввод с помощью мыши.

Только одно окно может принимать ввод с клавиатуры; говорят, что это окно имеет фокус клавиатуры. Если приложение использует функцию енаблевиндов для отключения окна фокуса клавиатуры, окно теряет фокус клавиатуры, а также отключает его. Затем енаблевиндов устанавливает фокус клавиатуры на значение NULL, означающее, что окно не имеет фокуса. Если в дочернем окне или другом подчиненном окне есть фокус клавиатуры, то при отключении родительского окна фокус теряется. Дополнительные сведения см. в разделе Ввод с клавиатуры.

Видимость окна

Сведенные, развернутые и восстановленные Windows

Если приложение задает в функции CreateWindowEx стиль _ сворачивания WS или WS, то окно изначально разворачивается или уменьшается. _ После создания окна приложение может использовать функцию клосевиндов для сворачивания окна. Функция арранжеикониквиндовс упорядочивает значки на рабочем столе или упорядочивает в родительском окне окна с минимальными дочерними окнами родительского окна. Функция опеникон восстанавливает окно до предыдущего размера и расположения.

Функция ShowWindow позволяет максимально увеличить, развернуть или восстановить окно. Он также может задавать состояние видимости и активации окна. Функция сетвиндовплацемент включает те же функции, что и ShowWindow, но может переопределять положение окна по умолчанию: сведенные, развернутые и восстановленные позиции.

Функции Zoom и Icon определяют, является ли данное окно развернутым или минимальным соответственно. Функция жетвиндовплацемент извлекает уменьшенные, развернутые и восстановленные позиции для окна, а также определяет состояние отображения окна.

Размер и расположение окна

Размер и расположение окна выражаются в виде ограничивающего прямоугольника, заданного в координатах относительно экрана или родительского окна. Координаты окна верхнего уровня задаются относительно левого верхнего угла экрана; координаты дочернего окна задаются относительно левого верхнего угла родительского окна. Приложение задает начальный размер и расположение окна при создании окна, но может изменить размер и расположение окна в любое время. Дополнительные сведения см. в разделе заполненные фигуры.

В этом разделе рассматриваются следующие вопросы.

Размер и расположение по умолчанию

Размер отслеживания

Система поддерживает минимальный и максимальный размер отслеживания для окна стиля WS _ сиккфраме ; окно с этим стилем имеет границу изменения размера. Минимальный размер для отслеживания — минимальный размер окна, который можно создать путем перетаскивания границы размера окна. Точно так же максимальный размер отслеживания — это самый крупный размер окна, который можно создать, перетащив границу изменения размера.

Системные команды

Приложение с меню окна может изменить размер и расположение этого окна, отправив системные команды. Системные команды создаются, когда пользователь выбирает команды в меню окно. Приложение может эмулировать действие пользователя, отправляя сообщение WM _ сискомманд в окно. Следующие системные команды влияют на размер и расположение окна.

КомандаОписание
SC _ CloseЗакрывает окно. Эта команда отправляет сообщение о _ закрытии WM в окно. Окно выполняет все действия, необходимые для очистки и уничтожения.
_развернуть SCРазворачивает окно.
SC — _ MinimizeСворачивает окно.
SC _ MoveПеремещает окно.
SC _ RESTOREВосстанавливает уменьшенное или развернутое окно до его предыдущего размера и расположения.
_Размер SCЗапускает команду размера. Чтобы изменить размер окна, используйте мышь или клавиатуру.

Функции размера и позиционирования

После создания окна приложение может задать размер или расположение окна, вызвав одну из нескольких различных функций, включая сетвиндовплацемент, мовевиндов, SetWindowPosи дефервиндовпос. Сетвиндовплацемент задает режим сворачивания окна, его развернутую точку, размер и расположение, а затем показывает состояние. Функции мовевиндов и SetWindowPos похожи; Установите размер или расположение одного окна приложения. Функция SetWindowPos включает набор флагов, влияющих на состояние отображения окна. Мовевиндов не включает эти флаги. Используйте функции бегиндефервиндовпос, дефервиндовпос и енддефервиндовпос для одновременного задания расположения ряда окон, включая размер, расположение, расположение в z-порядке и отображение состояния.

Функция жетклиентрект извлекает координаты клиентской области окна. Жетклиентрект заполняет структуру Rect координатами верхнего левого и нижнего правого угла клиентской области, но координаты отсчитываются от самой клиентской области. Это означает, что координаты верхнего левого угла клиентской области всегда равны (0, 0), а координаты нижнего правого угла имеют ширину и высоту клиентской области.

Функция каскадевиндовс размещает окна на рабочем столе или раскрывают дочерние окна указанного родительского окна. Функция тилевиндовс накладывает окна на Рабочий стол или плитки дочерних окон указанного родительского окна.

Размер и расположение сообщений

Система отправляет сообщение WM _ нккалксизе в окно при создании или изменении размера окна. Система использует сообщение для вычисления размера клиентской области окна и положения клиентской области относительно левого верхнего угла окна. Окно обычно передает это сообщение в процедуру окна по умолчанию; Однако это сообщение может быть полезно в приложениях, которые настраивают неклиентскую область окна или сохраняют части клиентской области при изменении размера окна. Дополнительные сведения см. в разделе Рисование и рисование.

Анимация окна

При отображении или скрытии окон с помощью функции аниматевиндов можно создавать специальные эффекты. Когда окно анимировано таким образом, система будет либо рулонировать, либо скольжением, либо исчезать окно в зависимости от флагов, указанных при вызове аниматевиндов.

При указании флага AW _ Blend система использует Выцветание с альфа-смешением.

Макет окна и зеркальное отображение

макет окна определяет, как объекты text и Windows интерфейс графических устройств (GDI) размещаются в окне или в контексте устройства (DC). Для некоторых языков, таких как английский, французский и немецкий, требуется макет слева направо (LTR). Для других языков, таких как арабский и иврит, требуется макет с направлением письма справа налево. Макет окна применяется к тексту, но также влияет на другие элементы GDI окна, включая растровые изображения, значки, расположение источника, кнопки, каскадные элементы управления «дерево» и способ увеличения горизонтальной координаты при переходе влево или вправо. Например, после того, как приложение настроило макет RTL, начало координат располагается на правой границе окна или устройства, а число, представляющее горизонтальную координату, увеличивается по мере перемещения влево. Однако макет окна влияет не на все объекты. Например, макет для диалоговых окон, окон сообщений и контекстов устройств, которые не связаны с окном, например метафайлы и контроллеры домена печати, необходимо обрабатывать отдельно. Конкретные особенности для них приведены далее в этом разделе.

Оконные функции позволяют указать или изменить макет окна в арабском и иврите версии Windows. Обратите внимание, что переход на макет с письмом справа налево (также называемый зеркальным отображением) не поддерживается для Windows, имеющих стиль CS _ овндк или для контроллера домена с _ расширенным графическим режимом GM.

Можно задать макет по умолчанию RTL, вызвав сетпроцессдефаултлайаут(макет _ RTL). Все окна, созданные после вызова, будут отражены, но существующие окна не затрагиваются. Чтобы отключить зеркальное отображение по умолчанию, вызовите сетпроцессдефаултлайаут(0).

Обратите внимание, что сетпроцессдефаултлайаут отражает только контроллеры домена с зеркальными окнами. Для зеркального отображения любого контроллера домена вызовите сетлайаут(HDC, Layout _ RTL). Дополнительные сведения см. в разделе обсуждение контекстов устройств зеркального отображения, не связанных с Windows, которые описаны далее в этой статье.

Растровые изображения и значки в зеркальном окне также отражаются по умолчанию. Однако не все из них должны быть отражены. Например, не следует создавать зеркальное отображение текста, эмблемы компании или аналоговых часов. Чтобы отключить зеркальное отображение точечных рисунков, вызовите сетлайаут с разметкой _ битмапориентатионпресервед bit, установленным в двлайаут. Чтобы отключить зеркальное отображение в контроллере домена, вызовите сетлайаут(HDC, 0).

При зеркальном отображении следует придуматься к терминам «NEAR» и «Far» вместо «Left» и «right». В противном случае могут возникнуть проблемы. Одна из распространенных методик создания кода, вызывающая проблемы в зеркальном окне, возникает при сопоставлении координат экрана и клиентских координат. Например, приложения часто используют код, аналогичный приведенному ниже, для размещения элемента управления в окне:

Это вызывает проблемы при зеркальном отображении, поскольку левый конец прямоугольника станет правым ребром в зеркальном окне и наоборот. Чтобы избежать этой проблемы, замените вызовы скринтоклиент вызовом мапвиндовпоинтс следующим образом:

Этот код работает потому, что на платформах, поддерживающих зеркальное отображение, мапвиндовпоинтс изменяется для переключения левой и правой точек при зеркальном отображении окна клиента. Дополнительные сведения см. в подразделе «Примечания» раздела мапвиндовпоинтс.

Другой распространенный подход, который может вызвать проблемы в зеркальных окнах, — размещение объектов в клиентском окне с использованием смещений в экранных координатах вместо клиентских координат. Например, в следующем коде используется разница в координатах экрана в качестве положения x в координатах клиента для размещения элемента управления в диалоговом окне.

Этот код подходит, когда окно диалогового окна имеет макет слева направо (LTR), а режим сопоставления клиента — это _ текст в формате mm, так как Новая координата x в клиентской части соответствует разнице в левых границах элемента управления и диалоговом окне в координатах экрана. Однако в зеркальном диалоговом окне левый и правый Обратны, поэтому следует использовать мапвиндовпоинтс следующим образом:

Диалоговое окно зеркального отображения и окна сообщений

Контексты устройств зеркального отображения, не связанные с окном

Если макет имеет вид RTL, жетмапмоде будет возвращать мм _ анизотропную длину вместо mm _ Text. Вызов сетмапмоде с _ текстом mm будет работать правильно, только возвращаемое значение из жетмапмоде затронуто. Аналогично, вызов сетлайаут(HDC, Layout _ RTL), если режим СОПОСТАВЛЕНИЯ — текст mm, приводит к _ изменению режима сопоставления на « _ анизотропная».

Уничтожение окна

Приложение уничтожает многие окна, создаваемые в ближайшее время после создания. Например, приложение обычно уничтожает окно диалогового окна, как только приложение будет иметь входные данные, необходимые пользователю для продолжения задачи. Приложение в конечном итоге уничтожает главное окно приложения (перед завершением работы).

Перед уничтожением окна приложение должно сохранить или удалить все данные, связанные с окном, и освободить все системные ресурсы, выделенные для окна. Если приложение не освобождает ресурсы, система освобождает все ресурсы, не освобожденные приложением.

Уничтожение окна не влияет на класс окна, из которого создается окно. Новые окна можно по-прежнему создавать с помощью этого класса, а все существующие окна этого класса продолжают работать. При уничтожении окна также уничтожаются его дочерние окна. Функция дестройвиндов отправляет сообщение WM _ destroy сначала в окно, а затем в его дочерние окна и подчиненные окна. Таким образом все дочерние окна, которые уничтожаются, также уничтожаются.

Если окно, которое уничтожается, является активным окном, состояния активного и фокуса передаются в другое окно. Окно, которое становится активным окном, является следующим окном, как определено сочетанием клавиш ALT + ESC. Новое активное окно определяет, какое окно получает фокус клавиатуры.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *