Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы ПВС(47).doc
Скачиваний:
6
Добавлен:
15.04.2019
Размер:
276.48 Кб
Скачать

20) Временные (pop-up) окна

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

Временные окна имеют стиль WS_POPUP, определенный в файле windows.h следующим образом:

#define WS_POPUP 0x80000000L

Временные окна, в отличие от перекрывающихся, могут не иметь заголовок (title bar). Если для временного окна определен заголовок, оно может иметь и системное меню. Часто для создания временных окон, имеющих рамку, используется стиль WS_POPUPWINDOW, определенный в файле windows.h следующим образом:

#define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)

Если надо добавить к временному окну системное меню и заголовок, стиль WS_POPUPWINDOW следует использовать в комбинации со стилем WS_CAPTION, добавляющим заголовок.

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

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

При изменении размеров временного окна (так же, как и дочернего) функция окна получает сообщение WM_PAINT, в параметрах которого указаны новые размеры окна.

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

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

21) Дочерние окна (child windows)+см.19.

Дочернее окно имеет стиль WS_CHILD и не может покидать клиентскую область своего родительского окна. Приложение обычно использует дочерние окна для разделения клиентской области родительского окна на отдельные функциональные области. Для создания дочернего окна Вы должны определить стиль WS_CHILD в функции CreateWindowEx().

Дочернее окно должно иметь родительское окно. Родительское окно может быть перекрывающимся окном, временным окном или даже другим дочернми окном. Вы должны определить родительское окно при вызове функции CreateWindowEx(). Если Вы определите стиль WS_CHILD в CreateWindowEx(), но при этом не определите родительское окно, Windows не создаст окно.

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