Структура DLGITEMTEMPLATE (winuser.h)
Определяет размеры и стиль элемента управления в диалоговом окне. Одна или несколько из этих структур объединяются со структурой DLGTEMPLATE для формирования стандартного шаблона для диалогового окна.
Синтаксис
typedef struct {
DWORD style;
DWORD dwExtendedStyle;
short x;
short y;
short cx;
short cy;
WORD id;
} DLGITEMTEMPLATE;
Члены
style
Тип: DWORD
Стиль элемента управления. Этот элемент может быть сочетанием значений стиля окна (например , WS_BORDER) и одного или нескольких значений стиля элемента управления (например , BS_PUSHBUTTON и ES_LEFT).
dwExtendedStyle
Тип: DWORD
Расширенные стили для окна. Этот элемент не используется для создания элементов управления в диалоговых окнах, но приложения, использующие шаблоны диалоговых окон, могут использовать его для создания окон других типов. Список значений см. в разделе Расширенные стили окна.
x
Тип: short
Координата X (в единицах диалогового окна) левого верхнего угла элемента управления. Эта координата всегда находится относительно левого верхнего угла клиентской области диалогового окна.
y
Тип: short
Координата Y в единицах диалогового окна верхнего левого угла элемента управления. Эта координата всегда находится относительно левого верхнего угла клиентской области диалогового окна.
cx
Тип: short
Ширина элемента управления в единицах диалогового окна.
cy
Тип: short
Высота элемента управления в единицах диалогового окна.
id
Тип: WORD
Идентификатор элемента управления.
Комментарии
В стандартном шаблоне для диалогового окна за структурой DLGITEMTEMPLATE всегда сразу следуют три массива переменной длины, определяющие класс, заголовок и данные создания для элемента управления . Каждый массив состоит из одного или нескольких 16-разрядных элементов.
Каждая структура DLGITEMTEMPLATE в шаблоне должна быть выровнена по границе DWORD . Массивы классов и заголовков должны быть выровнены по границам WORD . Массив данных создания должен быть выровнен по границе WORD .
Сразу за каждой структурой DLGITEMTEMPLATE следует массив классов, указывающий класс окна элемента управления . Если первым элементом этого массива является любое значение, отличное от 0xFFFF, система обрабатывает массив как строку Юникода с пустым завершением, указывающую имя зарегистрированного класса окна. Если первый элемент является 0xFFFF, массив имеет один дополнительный элемент, задающий порядковое значение предопределенного системного класса. Порядковый номер может быть одним из следующих значений атома.
Значение | Значение |
---|---|
0x0080 | Кнопка |
0x0081 | Изменить |
0x0082 | Статические |
0x0083 | Список |
0x0084 | полоса прокрутки; |
0x0085 | Поле со списком |
За массивом классов следует массив заголовков, содержащий исходный текст или идентификатор ресурса элемента управления . Если первым элементом этого массива является 0xFFFF, массив имеет один дополнительный элемент, указывающий порядковое значение ресурса, например значок, в исполняемом файле. Идентификатор ресурса можно использовать для элементов управления, таких как статические значки, которые загружают и отображают значок или другой ресурс, а не текст. Если первый элемент имеет любое значение, отличное от 0xFFFF, система обрабатывает массив как строку Юникода, завершающуюся null, которая задает исходный текст.
Создание массива данных начинается с следующей границы WORD после массива заголовков. Эти данные создания могут иметь любой размер и формат. Если первое слово в массиве данных создания не равно нулю, оно указывает размер (в байтах) данных создания (включая слово размера). Процедура окна элемента управления должна иметь возможность интерпретировать данные. Когда система создает элемент управления, она передает указатель на эти данные в параметре lParamWM_CREATE сообщения, которое она отправляет элементу управления.
При указании символьных строк в массивах классов и заголовков необходимо использовать строки Юникода. Используйте функцию MultiByteToWideChar для создания строк Юникода из строк ANSI.
Члены x, y, cx и cy указывают значения в единицах диалогового окна. Эти значения можно преобразовать в единицы экрана (пиксели) с помощью функции MapDialogRect .
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | winuser.h (включая Windows.h) |
См. также раздел
Основные понятия
Другие ресурсы
Справочные материалы