Поделиться через


Структура 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)

См. также раздел

Основные понятия

CreateDialogIndirect

CreateDialogIndirectParam

CreateWindowEx

DLGITEMTEMPLATEEX

DLGTEMPLATE

DLGTEMPLATEEX

Диалоговые окна

DialogBoxIndirect

DialogBoxIndirectParam

MapDialogRect

MultiByteToWideChar

Другие ресурсы

Справочные материалы

WM_CREATE