Стили шаблона диалогового окна
Каждый шаблон диалогового окна задает комбинацию значений стиля, которые определяют внешний вид и функциональные свойства блока диалога. Значения стиля могут быть стилями окна, такими как WS_POPUP и WS_SYSMENU, и стилями диалогового окна, такими как DS_MODALFRAME. Количество и типы стилей для шаблона зависят от типа и предназначения диалогового окна.
Система передает все стили окна, заданные в шаблоне в функцию CreateWindowEx при создании диалогового окна. Система может передать один или несколько дополнительных стилей в зависимости от заданных стилей диалогового окна. Например, если шаблон задает стиль DS_MODALFRAME, то система при создании диалогового окна использует стиль WS_EX_DLGMODALFRAME.
Большинство диалоговых окон - это всплывающие окна, которые имеют системное меню и область заголовка. Поэтому, типичный шаблон устанавливает стили WS_POPUP, WS_SYSMENU и WS_CAPTION . Шаблон также задает и стиль рамки: WS_BORDER для немодальных диалоговых окон и DS_MODALFRAME для модальных блоков диалога. Шаблон может установить тип окна другой, а не всплывающий (такой как WS_OVERLAPPED), если он создает пользовательское окно вместо диалогового окна.
Система всегда показывает на экране модальное диалоговое окно независимо от того, определен ли стиль WS_VISIBLE. Когда шаблон для немодального диалогового окна задает стиль WS_VISIBLE, система автоматически показывает на экране диалоговое окно, когда оно создается. Или же, приложение несет ответственность за показ на экране диалогового окна, используя функцию ShowWindow.
Нижеследующая таблица перечисляет стили диалогового окна, которые Вы можете установить, когда создаете диалоговое окно. Вы можете использовать эти стили при вызовах функций CreateWindow и CreateWindowEx, в члене style структур DLGTEMPLATE и DLGTEMPLATEEX, и в операторе определения диалогового окна в файле ресурса.
Значение | Предназначение | |
---|---|---|
DS_3DLOOK | Дает диалоговому окну нежирный шрифт
и рисует трехмерные границы вокруг
окон органов управления в диалоговом
окне.
Стиль DS_3DLOOK требуется только приложениям, откомпилированным для Windows NT 3.51. Система автоматически применяет трехмерный вид диалоговым окнам, созданным приложениями, откомпилированными для Windows 95/98/Me и более поздних версий Windows NT. |
|
DS_ABSALIGN | Указывает, что координаты диалогового окна - это экранные координаты. Если этот стиль не определен, координаты - клиентские координаты. | |
DS_CENTER | Выравнивает по центру диалоговое окно в рабочей области видеомонитора, который содержит окно владельца. Если окно владелец не определено, диалоговое окно центрируется в рабочей области видеомонитора, определенного системой. Рабочая область - область, не затененная панелью задач или какой-либо панелью приложения. | |
DS_CENTERMOUSE | Выравнивает по центру диалоговое окно относительно курсора мыши. | |
DS_CONTEXTHELP | Включает вопросительный знак в
заголовок диалогового окна. Когда
пользователь щелкает по
вопросительному знаку, курсор
изменяется на вопросительный знак с
указателем. Если пользователь затем
щелкает по органу управления в
диалоговом окне, то он получает
сообщение WM_HELP. Орган управления
должен передать сообщение в процедуру
диалогового окна, которая должна
вызвать функцию, используя команду
HELP_WM_HELP. Справку приложение
показывает на экране как всплывающее
окно, которое обычно содержит
справку об органе управления.
|
|
DS_CONTROL | Создает диалоговое окно, которое работает хорошо как дочернее окно другого диалогового окна, очень похожее на страницу вкладки свойств. Этот стиль дает возможность пользователю перемещаться при помощи кнопки TAB между окон органов управления дочернего диалогового окна, использовать его клавиши ускорения и так далее. | |
DS_FIXEDSYS | Заставляет диалоговое окно использовать SYSTEM_FIXED_FONT вместо значения по умолчанию SYSTEM_FONT. Это - моноширинный шрифт, совместимый с Системным шрифтом в 16-разрядных версиях Windows ранее чем 3.0. | |
DS_LOCALEDIT | Применяется только в 16-разрядных приложениях. Этот стиль предписывает поля редактирования текста в диалоговом окне размещать в сегменте данных памяти приложения. В противном случае, поля редактирования текста размещают в хранилище объекта глобальной памяти. | |
DS_MODALFRAME | Создает диалоговое окно с рамкой модального диалогового окна, которое может быть объединено областью заголовка и системным меню, при помощи определения стилей WS_CAPTION и WS_SYSMENU. | |
DS_NOFAILCREATE | Windows 95/98/Me: Создает диалоговое окно, даже если происходят ошибки - например, если дочернее окно не может создаться, или если система не может создать специальный сегмент данных для поля редактирования текста. | |
DS_NOIDLEMSG | Подавляет сообщения WM_ENTERIDLE, которое система в противном случае отправила бы во владельцу диалогового окна, во время, когда оно показывается на экране. | |
DS_SETFONT | Обозначает, что заголовок шаблона
диалогового окна (стандартного или
расширенного) содержит
дополнительные данные, определяющие
шрифт, который используется для
текста в рабочей области и органах
управления диалогового окна. Если
возможно, система выбирает шрифт
согласно заданным данным шрифта.
Система передает дескриптор шрифта
диалоговому окну и к каждому органу
управления, отправляя им сообщение
WM_SETFONT. Для описаний формата этих
данных шрифта, см. описание структур
DLGTEMPLATE и DLGTEMPLATEEX.
Если ни DS_SETFONT, ни DS_SHELLFONT не определены, шаблон диалогового окна не включает в себя данные шрифта. |
|
DS_SETFOREGROUND | Заставляет систему использовать
функцию
SetForegroundWindow, чтобы привести
диалоговое окно в высокоприоритетное
состояние. Этот стиль полезен для
модальных диалоговых окон, которые
требуют немедленного внимания от
пользователя независимо от того,
является ли окно владелец
приоритетным окном.
Windows 98/Me, Windows 2000/XP: Система ограничивает процессы, которые могут установить высокоприоритетное окно. Дополнительную информацию, см. статье Приоритетные и фоновые окна. |
|
DS_SHELLFONT | Указывает, что диалоговое окно
должно использовать системный шрифт.
Член структуры typeface расширенного
шаблона диалогового окна должен быть
установлен в MS Shell Dlg. Или же, этот стиль
не имеет никакого действия. Также
рекомендуется, чтобы Вы использовали
ресурс DIALOGEX, а не ресурс
DIALOG.
Дополнительную информацию, см. в
статье Шрифты диалогового окна. Система выбирает шрифт, используя данные шрифта, заданные в членах pointsize, weight и italic. Система передает дескриптор шрифта диалоговому окну и к каждому органу управления, отправляя им сообщение WM_SETFONT . Для описаний формата этих данных шрифта, см. описание DLGTEMPLATEEX. Если ни DS_SHELLFONT, ни DS_SETFONT не определены, расширенный шаблон диалогового окна не включает в себя данные о шрифте. |
|
DS_SYSMODAL | Этот стиль является устаревшим и
включается для совместимости с 16-разрядными
версиями Windows. Если Вы задаете этот
стиль, система создает диалоговое
окно со стилем WS_EX_TOPMOST. Этот стиль не
препятствует пользователю обращаться
к другим окнам на рабочем столе.
Не комбинируйте этот стиль со стилем DS_CONTROL. |