Структура DLGITEMTEMPLATE определяет размеры и стиль органа управления в диалоговом окне. Одна или несколько этих структур объединены со структурой DLGTEMPLATE, чтобы сформировать стандартный шаблон для диалогового окна.
Синтаксис
typedef struct { DWORD style; DWORD dwExtendedStyle; short x; short y; short cx; short cy; WORD id; } DLGITEMTEMPLATE, *PDLGITEMTEMPLATE; |
Члены структуры
style
Устанавливает стиль органа управления. Этот член структуры может быть комбинацией значений стиля окна (таких как WS_BORDER) и одним или несколькими значениями стиля органа управления (такими как BS_PUSHBUTTON и ES_LEFT).
dwExtendedStyle
Устанавливает расширенные стили для окна. Этот член структуры не используется для создания органов управления в диалоговых окнах, но приложения, которые используют шаблоны блока диалога могут использовать его, чтобы создавать другие типы окон.
x
Устанавливает x-координату левого верхнего угла органа управления, в единицах измерения диалогового окна. Эта координата - всегда относительно левого верхнего угла рабочей области блока диалога.
y
Устанавливает y-координату левого верхнего угла органа управления, в единицах измерения диалогового окна. Эта координата - всегда относительно левого верхнего угла рабочей области блока диалога.
cx
Устанавливает ширину органа управления, в единицах измерения диалогового окна.
cy
Устанавливает высоту органа управления, в единицах измерения диалогового окна.
id
Устанавливает идентификатор органа управления.
Windows 95/98/Me: Используется только первый байт (то есть 255 - максимум).
Замечания
В стандартном шаблоне диалогового окна, структура DLGITEMTEMPLATE всегда непосредственно сопровождается тремя массивами переменной длины, которые определяют класс, заголовок и данные для создания органа управления. Каждый массив состоит из одного или нескольких 16-разрядных элементов.
Каждая структура DLGITEMTEMPLATE в шаблоне должна выравниваться по границе двойного слова (DWORD). Массивы класса и заголовка должны выравниваться по границам слова (WORD). Массив данных создания должен выравниваться на границе слова (WORD).
За каждой структурой DLGITEMTEMPLATE непосредственно следует массив класса, который определяет класс окна органа управления. Если первый элемент этого массива - какое-либо значение, а не 0xFFFF, система обрабатывает массив как строку Unicode с символом конца строки ('\0'), которая задает имя зарегистрированного класса окна. Если первый элемент равен 0xFFFF, массив имеет один дополнительный элемент, который устанавливает порядковое значение предопределенного системного класса. Порядковый номер может быть одним из ниже перечисленных значений атома.
Значение Предназначение 0x0080 Кнопка (Button) 0x0081 Поле редактирования текста (Edit) 0x0082 Статическое поле (Static) 0x0083 Окно списка (List box) 0x0084 Линейка прокрутки (Scroll bar) 0x0085 Комбинированное окно (Combo box)
Следующий за массивом класса - массив заголовка, который содержит начальный текст или идентификатор ресурса органа управления. Если первый элемент этого массива - 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое значение ресурса, такое как значок в исполняемом файле. Вы можете использовать идентификатор ресурса для органов управления, таких как статический элемент управления значком, который загружает и показывает на экране значок или другой ресурс, но не текст. Если первый элемент - любое значение, а не 0xFFFF, система обрабатывает массив как строку Unicode с символом конца строки ('\0'), которая задает исходный текст.
Массив данных создания начинается со следующей границы слова (WORD) после массива заголовка. Эти данные создания могут иметь любой размер и формат. Если первое слово создающего массива данных не нуль, то оно указывает размер, этих данных (включая слово размера), в байтах. Оконная процедура органа управления должна быть в состоянии интерпретировать эти данные. Когда система создает орган управления, она передает указатель на эти данные в параметре lParam сообщения WM_CREATE, которое система отправляет в орган управления.
Если Вы устанавливаете строки символов в массивах класса и заголовка, Вы должны использовать символьные строки Unicode. Чтобы создать код, который работает и в Microsoft ® Windows ® 95/98/Me и в Windows NT / 2000/XP, используйте функцию MultiByteToWideChar, чтобы генерировать эти символьные строки Unicode.
Члены структуры x, y, cx, и cy задают значения в единицах измерения диалогового окна. Вы можете преобразовать эти значения в экранные единицы измерения (пиксели), используя функцию MapDialogRect.
Смотри также
Обзор Диалоговые окна, Структуры, используемые диалоговыми окнами, CreateDialogIndirect, CreateDialogIndirectParam, CreateWindowEx, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MapDialogRect, MultiByteToWideChar, WM_CREATE
Размещение и совместимость DLGITEMTEMPLATE |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
- |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |