Структура DLGTEMPLATE (winuser.h)
Определяет размеры и стиль диалогового окна. Эта структура( всегда первая в стандартном шаблоне для диалогового окна) также указывает количество элементов управления в диалоговом окне и, следовательно, количество последующих структур DLGITEMTEMPLATE в шаблоне.
Синтаксис
typedef struct {
DWORD style;
DWORD dwExtendedStyle;
WORD cdit;
short x;
short y;
short cx;
short cy;
} DLGTEMPLATE;
Члены
style
Тип: DWORD
Стиль диалогового окна. Этот элемент может быть сочетанием значений стиля окна (например , WS_CAPTION и WS_SYSMENU) и значений стиля диалогового окна (например , DS_CENTER).
Если элемент стиля включает стиль DS_SETFONT , заголовок шаблона диалогового окна содержит дополнительные данные, указывающие шрифт, используемый для текста в клиентской области и элементах управления диалогового окна. Данные шрифта начинаются с границы WORD , следующей за массивом заголовков. Данные шрифта указывают 16-битовое значение размера точки и строку имени шрифта Юникода. По возможности система создает шрифт в соответствии с указанными значениями. Затем система отправляет WM_SETFONT сообщение в диалоговое окно и в каждый элемент управления, чтобы предоставить дескриптор шрифта. Если DS_SETFONT не указан, шаблон диалогового окна не содержит данные шрифта.
Стиль DS_SHELLFONT не поддерживается в заголовке DLGTEMPLATE .
dwExtendedStyle
Тип: DWORD
Расширенные стили для окна. Этот элемент не используется для создания диалоговых окон, но приложения, использующие шаблоны диалоговых окон, могут использовать его для создания окон других типов. Список значений см. в разделе Стили расширенных окон.
cdit
Тип: WORD
Количество элементов в диалоговом окне.
x
Тип: short
Координата X в единицах диалогового окна верхнего левого угла диалогового окна.
y
Тип: short
Координата по оси Y в единицах диалогового окна в левом верхнем углу диалогового окна.
cx
Тип: short
Ширина диалогового окна в единицах диалогового окна.
cy
Тип: short
Высота диалогового окна в единицах диалогового окна.
Комментарии
В стандартном шаблоне для диалогового окна за структурой DLGTEMPLATE всегда сразу следуют три массива переменной длины, указывающие меню, класс и заголовок диалогового окна. Если указан стиль DS_SETFONT, за этими массивами также следует 16-битовое значение, указывающее размер точки, и другой массив переменной длины, указывающий имя шрифта. Каждый массив состоит из одного или нескольких 16-разрядных элементов. Массивы меню, класса, заголовка и шрифта должны быть выровнены по границам WORD .
Сразу после структуры DLGTEMPLATE находится массив меню, который определяет ресурс меню для диалогового окна. Если первый элемент этого массива является 0x0000, диалоговое окно не имеет меню, а массив не содержит других элементов. Если первый элемент является 0xFFFF, массив содержит один дополнительный элемент, указывающий порядковое значение ресурса меню в исполняемом файле. Если первый элемент имеет любое другое значение, система рассматривает массив как строку Юникода, завершающуюся null, которая указывает имя ресурса меню в исполняемом файле.
За массивом меню следует массив классов, определяющий класс окна диалогового окна. Если первым элементом массива является 0x0000, система использует для этого диалогового окна предопределенный класс dialog box, а массив не содержит других элементов. Если первый элемент является 0xFFFF, массив содержит один дополнительный элемент, указывающий порядковое значение предопределенного системного класса окна. Если первый элемент имеет любое другое значение, система рассматривает массив как строку Юникода, завершающуюся null, которая указывает имя зарегистрированного класса окна.
После массива классов находится массив заголовков, указывающий строку Юникода, завершающуюся null, которая содержит заголовок диалогового окна. Если первый элемент этого массива является 0x0000, диалоговое окно не имеет заголовка, а массив не содержит других элементов.
16-битовое значение размера точек и массив шрифта следуют за массивом заголовков, но только в том случае, если элемент стиля задает DS_SETFONT стиль. Значение размера точки указывает размер шрифта, используемого для текста в диалоговом окне и его элементов управления. Массив шрифта представляет собой строку Юникода, завершающуюся null, которая указывает имя шрифта. При указании этих значений система создает шрифт с указанным размером и шрифтом (если это возможно) и отправляет WM_SETFONT сообщение в процедуру диалогового окна и процедуры окна управления при создании диалогового окна и элементов управления.
За заголовком DLGTEMPLATE в стандартном шаблоне диалогового окна следует одна или несколько структур DLGITEMTEMPLATE , которые определяют размеры и стиль элементов управления в диалоговом окне. Элемент cdit указывает количество структур DLGITEMTEMPLATE в шаблоне. Эти структуры DLGITEMTEMPLATE должны быть выровнены по границам DWORD .
При указании символьных строк в массивах меню, класса, заголовка или шрифта необходимо использовать строки Юникода.
Элементы x, y, cx и cy задают значения в единицах диалогового окна. Эти значения можно преобразовать в единицы экрана (пиксели) с помощью функции MapDialogRect .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | winuser.h (включая Windows.h) |
См. также раздел
Основные понятия
Другие ресурсы
Справочные материалы