Структура DLGTEMPLATEEX
Шаблон расширенного диалогового окна начинается с заголовка DLGTEMPLATEEX , который описывает диалоговое окно и указывает количество элементов управления в диалоговом окне. Для каждого элемента управления в диалоговом окне расширенный шаблон диалогового окна содержит блок данных, в котором для описания элемента управления используется формат DLGITEMTEMPLATEEX .
Структура DLGTEMPLATEEX не определена ни в одном стандартном файле заголовка. Определение структуры приведено здесь, чтобы объяснить формат расширенного шаблона для диалогового окна.
Синтаксис
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
-
Тип: WORD
-
Номер версии шаблона расширенного диалогового окна. Для этого элемента необходимо задать значение 1.
-
подпись
-
Тип: WORD
-
Указывает, является ли шаблон расширенным шаблоном диалогового окна. Если подпись 0xFFFF, это расширенный шаблон диалогового окна. В этом случае член dlgVer указывает номер версии шаблона. Если подпись имеет любое значение, отличное от 0xFFFF, это стандартный шаблон диалогового окна, использующий структуры DLGTEMPLATE и DLGITEMTEMPLATE .
-
helpID
-
Тип: DWORD
-
Идентификатор контекста справки для диалогового окна. Когда система отправляет WM_HELP сообщение, она передает это значение в элемент wContextId структуры HELPINFO .
-
exStyle
-
Тип: DWORD
-
Расширенные стили окон. Этот элемент не используется при создании диалоговых окон, но приложения, использующие шаблоны диалоговых окон, могут использовать его для создания окон других типов. Список значений см. в разделе Стили расширенных окон.
-
style
-
Тип: DWORD
-
Стиль диалогового окна. Этот элемент может быть сочетанием значений стиля окна и стилей диалогового окна.
Если стиль включает стиль диалогового окна DS_SETFONT или DS_SHELLFONT , заголовок DLGTEMPLATEEX расширенного шаблона диалогового окна содержит четыре дополнительных элемента ( pointsize, weight, курсив и шрифт), которые описывают шрифт, используемый для текста в клиентской области и элементах управления диалогового окна. По возможности система создает шрифт в соответствии со значениями, указанными в этих элементах. Затем система отправляет WM_SETFONT сообщение в диалоговое окно и в каждый элемент управления, чтобы предоставить дескриптор шрифта.
Дополнительные сведения см. в разделе Шрифты диалогового окна.
-
cDlgItems
-
Тип: WORD
-
Количество элементов управления в диалоговом окне.
-
x
-
Тип: short
-
Координата X в единицах диалогового окна верхнего левого угла диалогового окна.
-
y
-
Тип: short
-
Координата по оси Y в единицах диалогового окна в левом верхнем углу диалогового окна.
-
Cx
-
Тип: short
-
Ширина диалогового окна в единицах диалогового окна.
-
Cy
-
Тип: short
-
Высота диалогового окна в единицах диалогового окна.
-
Меню
-
Тип: sz_Or_Ord
-
Массив переменной длины из 16-разрядных элементов, определяющий ресурс меню для диалогового окна. Если первый элемент этого массива является 0x0000, диалоговое окно не имеет меню, а массив не содержит других элементов. Если первый элемент является 0xFFFF, массив содержит один дополнительный элемент, указывающий порядковое значение ресурса меню в исполняемом файле. Если первый элемент имеет любое другое значение, система рассматривает массив как строку Юникода, завершающуюся null, которая указывает имя ресурса меню в исполняемом файле.
-
windowClass
-
Тип: sz_Or_Ord
-
Массив переменной длины из 16-разрядных элементов, идентифицирующий класс окна диалогового окна. Если первым элементом массива является 0x0000, система использует для этого диалогового окна предопределенный класс dialog box, а массив не содержит других элементов. Если первый элемент является 0xFFFF, массив содержит один дополнительный элемент, указывающий порядковое значение предопределенного системного класса окна. Если первый элемент имеет любое другое значение, система рассматривает массив как строку Юникода, завершающуюся null, которая указывает имя зарегистрированного класса окна.
-
title
-
Тип: WCHAR[titleLen]
-
Название диалогового окна. Если первый элемент этого массива является 0x0000, диалоговое окно не имеет заголовка, а массив не содержит других элементов.
-
pointsize
-
Тип: WORD
-
Размер шрифта, используемого для текста в диалоговом окне и его элементов управления.
Этот элемент присутствует только в том случае, если элемент стиля задает DS_SETFONT или DS_SHELLFONT.
-
weight
-
Тип: WORD
-
Вес шрифта. Обратите внимание, что, хотя это может быть любое из значений, перечисленных для элемента lfWeight структуры LOGFONT , любое используемое значение будет автоматически изменено на FW_NORMAL.
Этот элемент присутствует только в том случае, если элемент стиля задает DS_SETFONT или DS_SHELLFONT.
-
курсив
-
Тип: BYTE
-
Указывает, является ли шрифт курсивом. Если это значение равно TRUE, шрифт будет курсивом.
Этот элемент присутствует только в том случае, если элемент стиля задает DS_SETFONT или DS_SHELLFONT.
-
charset
-
Тип: BYTE
-
Используемый набор символов. Дополнительные сведения см. в разделе элемент lfcharsetобъекта LOGFONT.
Этот элемент присутствует только в том случае, если элемент стиля задает DS_SETFONT или DS_SHELLFONT.
-
Шрифт
-
Тип: WCHAR[stringLen]
-
Имя шрифта.
Этот элемент присутствует только в том случае, если элемент стиля задает DS_SETFONT или DS_SHELLFONT.
Комментарии
Расширенный шаблон диалогового окна можно использовать вместо стандартного в функциях CreateDialogIndirectParam, DialogBoxIndirectParam, CreateDialogIndirect и DialogBoxIndirect .
За заголовком DLGTEMPLATEEX в расширенном шаблоне диалогового окна следует одна или несколько структур DLGITEMTEMPLATEEX , описывающих элементы управления диалогового окна. Элемент cDlgItems структуры DLGITEMTEMPLATEEX указывает количество структур DLGITEMTEMPLATEEX , которые следуют в шаблоне.
Каждая структура DLGITEMTEMPLATEEX в шаблоне должна быть выровнена по границе DWORD . Если элемент стиля задает DS_SETFONT или DS_SHELLFONT стиль, первая структура DLGITEMTEMPLATEEX начинается с первой границы DWORD после строки шрифта . Если эти стили не указаны, первая структура начинается с первой границы DWORD после строки заголовка .
Массивы меню, windowClass, title и typeface должны быть выровнены по границам WORD.
При указании символьных строк в массивах меню, windowClass, title и typeface необходимо использовать строки Юникода. Используйте функцию MultiByteToWideChar для создания этих строк Юникода из строк ANSI.
Элементы x, y, cx и cy задают значения в единицах диалогового окна. Эти значения можно преобразовать в единицы экрана (пиксели) с помощью функции MapDialogRect .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
См. также раздел
-
Справочные материалы
-
Основные понятия
-
Другие ресурсы