Структура DLGTEMPLATEEX не определена в каком-либо стандартном заголовочном файле. Определение структуры предусмотрено здесь, чтобы объяснить формат расширенного шаблона для диалогового окна.
Расширенный шаблон диалогового окна начинается с заголовочного файла DLGTEMPLATEEX, который описывает блок диалога и определяет число органов управления в нем. Для каждого органа управления в диалоге, расширенный шаблон диалогового окна имеет блок данных, который использует формат DLGITEMTEMPLATEEX, чтобы описать этот элемент управления.
Синтаксис
typedef struct { WORD dlgVer; WORD signature; DWORD helpID; DWORD exStyle; DWORD style; WORD cDlgItems; short x; short y; short cx; short cy; sz_Or_Ord menu; sz_Or_Ord windowClass; WCHAR title[titleLen]; WORD pointsize; WORD weight; BYTE italic; BYTE charset; WCHAR typeface[stringLen]; } DLGTEMPLATEEX; |
Члены структуры
dlgVer
Определят номер версии расширенного шаблона диалогового окна. Этот член структуры должен быть 1.
signature
Указывает, не является ли шаблон расширенным шаблоном диалогового окна. Если signature - 0xFFFF член указывает на расширенный шаблон блока диалога. В этом случае, член структуры dlgVer определяет номер версии шаблона. Если signature - любое другое значение, а не 0xFFFF, это - стандартный шаблон, который использует структуры DLGTEMPLATE и DLGITEMTEMPLATE.helpID
Определяет контекстный идентификатор справки для окна блока диалога. Когда система отправляет сообщение WM_HELP, она передает это значение в член dwContextId структуры HELPINFO.exStyle
Определяет дополнительные стили для окна. Этот член структуры не используется для создания диалогового окна, однако прикладные программы, которые используют шаблоны блока диалога, могут использовать его, чтобы создать другие типы окон.Список дополнительных стилей окна, см. в описании CreateWindowEx.
style
Устанавливает стиль диалогового окна. Этот член структуры может быть комбинацией значений стиля окна и значений стиля диалогового окна. Список стилей окна, см. в описании CreateWindow. Список стилей диалогового окна см. в статье Шаблоны диалогового окна.
Если style включает в себя стиль диалогового окна DS_SETFONT или DS_SHELLFONT, заголовок DLGTEMPLATEEX расширенного шаблона диалогового окна содержит четыре дополнительных члена (pointsize, weight, italic и typeface), которые характеризуют шрифт используемый для текста в рабочей области и органах управления диалогового окна. Если возможно, система создает шрифт согласно значениям определенным в этих членах. Затем система отправляет сообщение WM_SETFONT диалоговому окну и каждому органу управления, чтобы предоставить дескриптор шрифта.
Дополнительную информацию, см. в статье Шрифты диалогового окна.
cDlgItemsУстанавливает определенное число органов управления в диалоговом окне.
x
Устанавливает x-координату левого верхнего угла блока диалога, в единицах измерения диалогового окна.
y
Устанавливает y-координату левого верхнего угла блока диалога, в единицах измерения диалогового окна.cx
Устанавливает ширину блока диалога, в единицах измерения диалогового окна.
cy
Устанавливает высоту блока диалога, в единицах измерения диалогового окна.
menu
Определяет массив переменной длины 16-разрядных элементов, который идентифицирует ресурс меню для диалогового окна. Если первый элемент этого массива - 0x0000, у блока диалога нет меню, а у массива нет других элементов. Если первый элемент - 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое значение ресурса меню в исполняемом файле. Если первый элемент имеет какое-либо другое значение, система обрабатывает массив как строку Unicode с нулевым символом в конце ('0'), которая определяет название ресурса меню в исполняемом файле.windowClass
Определяет массив переменной длины 16-разрядных элементов, который идентифицирует класс диалогового окна. Если первый элемент этого массива является 0х0000, система использует предопределенный класс диалогового окна, а у массива нет других элементов. Если первый элемент является 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое значение предопределенного системного класса окна. Если первый элемент этого массива является каким-либо другим значением, система обрабатывает массив как строку Unicode с нулевым символом в конце ('0'), которая определяет название зарегистрированного класса окна.
title
Определяет строку Unicode с нулевым символом в конце ('0'), которая содержит заголовок диалогового окна. Если первый элемент этого массива - 0x0000, у блока диалога нет заголовка, а у массива нет никаких других элементов.
pointsize
Определяет размер шрифта в пунктах, который используется для текста в диалоговом окне и его органах управления. Этот член присутствует только тогда, если член структуры style определяет стиль DS_SETFONT.
weight
Определяет толщину шрифта. Этот член структуры
присутствует, только тогда, если член
структуры style
определяет DS_SETFONT
или DS_SHELLFONT.
Обратите внимание! на
то, что хотя этот член может иметь любое
значение, из перечисляемых для члена
lfWeight структуры
LOGFONT, любое значение,
которое используется должно быть
автоматически заменяться на FW_NORMAL.
italic
Указывает, является ли шрифт курсивным. Если это значение - ИСТИНА (TRUE), шрифт курсивный.
Этот член структуры присутствует, только тогда, если член структуры style определяет DS_SETFONT или DS_SHELLFONT.
charset
Указывает символьный набор, который используется. Дополнительную информацию, см. в описании члена lfcharset структуры LOGFONT.
Этот член структуры присутствует, только тогда, если член структуры style определяет DS_SETFONT или DS_SHELLFONT.
typeface
Определяет строку Unicode с символом конца строки ('\0'), которая содержит имя гарнитуры шрифта.
Этот член структуры присутствует, только тогда, если член структуры style определяет DS_SETFONT или DS_SHELLFONT.
Замечания
Вы можете использовать расширенный шаблон диалогового окна вместо стандартного шаблона блока диалога в функциях CreateDialogIndirectParam и DialogBoxIndirectParam и макрокомандах CreateDialogIndirect и DialogBoxIndirect.
После заголовка DLGTEMPLATEEX в расширенном шаблоне диалогового окна располагаются одна или несколько структур DLGITEMTEMPLATEEX, которые характеризуют органы управления блока диалога. Член cDlgItems структуры DLGITEMTEMPLATEEX определяет число структур DLGITEMTEMPLATEEX, которые следуют друг за другом в шаблоне.
Каждая структура DLGITEMTEMPLATEEX в шаблоне должна быть выровнена по границе двойного слова (DWORD). Если член структуры style определяет стиль DS_SETFONT или DS_SHELLFONT, первая структура DLGITEMTEMPLATEEX начинается с первой границы двойного слова (DWORD) после строки typeface. Если эти стили не определены, первая структура начинается на первой границе двойного слова (DWORD) после строки title.
Массивы menu, windowClass, title и typeface должны быть выровнены по границам слова (WORD).
Если Вы определяете строки символов в массивах menu, windowClass, title и typeface , Вы должны использовать строки Unicode. Чтобы создать код, который работает, и в Microsoft® Windows® 95/98/Me и в Windows NT/2000/XP, используйте функцию MultiByteToWideChar, чтобы генерировать эти строки Unicode.
Члены структуры x, y, cx, и cy задают значения в единицах измерения диалогового окна. Вы можете преобразовать эти значения в экранные единицы измерения (пиксели), используя функцию MapDialogRect.
Смотри такжеОбзор Диалоговые окна, Структуры, используемые диалоговыми окнами, CreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATEEX, LOGFONT, MapDialogRect, MultiByteToWideChar, WM_SETFONT
Размещение и совместимость DLGTEMPLATEEX |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.51 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
- |
Заголовочный файл |
|
- объявлено в |
- |
- включено в |
- |
Unicode |
Нет |
Замечания по платформе |
Не имеется |