Win32 API. Справочник по диалоговому окну
Страница 29. Структура DLGITEMTEMPLATE


Структура DLGITEMTEMPLATE

Структура DLGITEMTEMPLATE определяет габариты и стиль органа управления в диалоговом окне. Одна или несколько этих структур объединяются со структурой DLGTEMPLATE, чтобы сформировать стандартный шаблон для блока диалога.

Синтаксис

typedef struct 
{// dlit
DWORD style;
DWORD dwExtendedStyle;
short x;
short y;
short cx;
short cy;
WORD id;
} DLGITEMTEMPLATE;

Члены структуры
style
Определяет стиль органа управления. Этот элемент структуры может быть комбинацией значений стиля окна (типа WS_BORDER) и одного или нескольких значений стиля органов управления (типа BS_PUSHBUTTON и ES_LEFT).
dwExtendedStyle
Определяет расширенные стили для окна. Этот член структуры не используется, чтобы создавать органы управления в блоках диалога, однако прикладные программы, которые используют шаблоны диалогового окна, могут использовать его, чтобы создать другие типы окон.
x
Устанавливает x-координату, в единицах измерения диалогового окна, левого верхнего угла органа управления. Эта координата - всегда относительно левого верхнего угла рабочей области блока диалога.
y
Устанавливает y-координату, в единицах измерения диалогового окна, левого верхнего угла органа управления. Эта координата - всегда относительно левого верхнего угла рабочей области блока диалога.
cx
Устанавливает ширину, в единицах измерения диалогового окна, органа управления.
cy
Устанавливает высоту, в единицах измерения диалогового окна, органа управления.
id
Определяет идентификатор элемента управления.

Замечания
В стандартном шаблоне для диалогового окна, структура DLGITEMTEMPLATE всегда непосредственно сопровождается тремя массивами переменной длины, определяющими класс, заголовок и данные для создания органа управления. Каждый массив состоит из одного или большего количества 16-разрядных элементов.
Каждая структура DLGITEMTEMPLATE в шаблоне должна быть выровнена на по границе двойного слова (DWORD). Массивы класса и заголовка должны быть выровнены по границе слова (WORD). Массив данных создания должен быть выровнен по границе двойного слова (DWORD).
Непосредственно после каждой структуры DLGITEMTEMPLATE идет массив класса, который идентифицирует орган управления класса окна. Если первый элемент этого массива - какое-либо значение, отличающееся от 0xFFFF, система обрабатывает массив как строку Уникода с нулевым символом в конце, которая определяет название зарегистрированного класса окна. Если первый элемент - 0xFFFF, массив имеет один дополнительный элемент, который устанавливает порядковое значение предопределенного системой класса. Порядковое значение может быть одно из следующих значений атома:

  • 0x0080 - Кнопка (Button)
  • 0x0081 - Редактируемое окно (Edit)
  • 0x0082 - Статическое окно (Static)
  • 0x0083 - Окно со списком (List box)
  • 0x0084 - Линейка прокрутки (Scroll bar)
  • 0x0085 - Кобинированное окно (Combo box)

После массива класса идет массив заголовка, который содержит начальный текст или идентификатор ресурса органа управления. Если первый элемент этого массива - 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое число ресурса, типа пиктограммы, в исполняемом файле. Вы можете использовать идентификатор ресурса для органов управления, таких как пиктограмма статического органа управления, который загружает и показывает на экране пиктограмму или другой ресурс, а не текст. Если первый элемент - какое-либо значение, отличающееся от 0xFFFF, система обрабатывает массив как строку Уникода с нулевым символом в конце, которая определяет начальный текст.
Массив данных для создания начинается со следующей границы ДВОЙНОГО СЛОВА (DWORD) после массива заголовка. Эти данные для создания могут иметь любой размер и формат. Если первый байт массива данных создания - не нуль, он указывает размер, в байтах, данных для создания (включая байт размера). Оконная процедура органа управления должна получить возможность, чтобы интерпретировать данные. Когда система создает орган управления, она передает указатель на эти данные в параметре lParam сообщения WM_CREATE, которые она отправляет органу управления.
Если Вы определяете строки символов в массивах класса и заголовка, Вы должны использовать строки Уникода. Чтобы создать код, который работает, и в Windows NT и в Windows 95, используйте функцию MultiByteToWideChar для генерации этих строк Уникода.
Члены структуры x, y, cx, и cy устанавливают значения в единицах измерения диалогового окна. Вы можете преобразовывать эти значения в растровые элементы (пиксели), используя функцию MapDialogRect.

Смотри также
CreateDialogIndirect, CreateDialogIndirectParam, CreateWindowEx, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MapDialogRect, MultiByteToWideChar, WM_CREATE

Размещение и совместимость DLGITEMTEMPLATE

Windows NTДа 
Win95Да
Win32sДа
Импортируемая библиотека-
Заголовочный файлwinuser.h
UnicodeНет
Замечания по платформеНе имеется

 
« Предыдущая статья   Следующая статья »