Структура DLGTEMPLATEEX

Шаблон расширенного диалогового окна начинается с заголовка DLGTEMPLATEEX , который описывает диалоговое окно и указывает количество элементов управления в диалоговом окне. Для каждого элемента управления в диалоговом окне расширенный шаблон диалогового окна содержит блок данных, в котором для описания элемента управления используется формат DLGITEMTEMPLATEEX .

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

Синтаксис

typedef struct {
  WORD      dlgVer;
  WORD      signature;
  DWORD     helpID;
  DWORD     exStyle;
  DWORD     style;
  WORD      cDlgItems;
  short     x;
  short     y;
  short     cx;
  short     cy;
  sz_Or_Ord menu;
  sz_Or_Ord windowClass;
  WCHAR     title[titleLen];
  WORD      pointsize;
  WORD      weight;
  BYTE      italic;
  BYTE      charset;
  WCHAR     typeface[stringLen];
} DLGTEMPLATEEX;

Члены

dlgVer

Тип: WORD

Номер версии шаблона расширенного диалогового окна. Для этого элемента необходимо задать значение 1.

подпись

Тип: WORD

Указывает, является ли шаблон расширенным шаблоном диалогового окна. Если подпись 0xFFFF, это расширенный шаблон диалогового окна. В этом случае член dlgVer указывает номер версии шаблона. Если подпись имеет любое значение, отличное от 0xFFFF, это стандартный шаблон диалогового окна, использующий структуры DLGTEMPLATE и DLGITEMTEMPLATE .

helpID

Тип: DWORD

Идентификатор контекста справки для диалогового окна. Когда система отправляет WM_HELP сообщение, она передает это значение в элемент wContextId структуры HELPINFO .

exStyle

Тип: DWORD

Расширенные стили окон. Этот элемент не используется при создании диалоговых окон, но приложения, использующие шаблоны диалоговых окон, могут использовать его для создания окон других типов. Список значений см. в разделе Стили расширенных окон.

style

Тип: DWORD

Стиль диалогового окна. Этот элемент может быть сочетанием значений стиля окна и стилей диалогового окна.

Если стиль включает стиль диалогового окна DS_SETFONT или DS_SHELLFONT , заголовок DLGTEMPLATEEX расширенного шаблона диалогового окна содержит четыре дополнительных элемента ( pointsize, weight, курсив и шрифт), которые описывают шрифт, используемый для текста в клиентской области и элементах управления диалогового окна. По возможности система создает шрифт в соответствии со значениями, указанными в этих элементах. Затем система отправляет WM_SETFONT сообщение в диалоговое окно и в каждый элемент управления, чтобы предоставить дескриптор шрифта.

Дополнительные сведения см. в разделе Шрифты диалогового окна.

cDlgItems

Тип: WORD

Количество элементов управления в диалоговом окне.

x

Тип: short

Координата X в единицах диалогового окна верхнего левого угла диалогового окна.

y

Тип: short

Координата по оси Y в единицах диалогового окна в левом верхнем углу диалогового окна.

Cx

Тип: short

Ширина диалогового окна в единицах диалогового окна.

Cy

Тип: short

Высота диалогового окна в единицах диалогового окна.

Меню

Тип: sz_Or_Ord

Массив переменной длины из 16-разрядных элементов, определяющий ресурс меню для диалогового окна. Если первый элемент этого массива является 0x0000, диалоговое окно не имеет меню, а массив не содержит других элементов. Если первый элемент является 0xFFFF, массив содержит один дополнительный элемент, указывающий порядковое значение ресурса меню в исполняемом файле. Если первый элемент имеет любое другое значение, система рассматривает массив как строку Юникода, завершающуюся null, которая указывает имя ресурса меню в исполняемом файле.

windowClass

Тип: sz_Or_Ord

Массив переменной длины из 16-разрядных элементов, идентифицирующий класс окна диалогового окна. Если первым элементом массива является 0x0000, система использует для этого диалогового окна предопределенный класс dialog box, а массив не содержит других элементов. Если первый элемент является 0xFFFF, массив содержит один дополнительный элемент, указывающий порядковое значение предопределенного системного класса окна. Если первый элемент имеет любое другое значение, система рассматривает массив как строку Юникода, завершающуюся null, которая указывает имя зарегистрированного класса окна.

title

Тип: WCHAR[titleLen]

Название диалогового окна. Если первый элемент этого массива является 0x0000, диалоговое окно не имеет заголовка, а массив не содержит других элементов.

pointsize

Тип: WORD

Размер шрифта, используемого для текста в диалоговом окне и его элементов управления.

Этот элемент присутствует только в том случае, если элемент стиля задает DS_SETFONT или DS_SHELLFONT.

weight

Тип: WORD

Вес шрифта. Обратите внимание, что, хотя это может быть любое из значений, перечисленных для элемента lfWeight структуры LOGFONT , любое используемое значение будет автоматически изменено на FW_NORMAL.

Этот элемент присутствует только в том случае, если элемент стиля задает DS_SETFONT или DS_SHELLFONT.

курсив

Тип: BYTE

Указывает, является ли шрифт курсивом. Если это значение равно TRUE, шрифт будет курсивом.

Этот элемент присутствует только в том случае, если элемент стиля задает DS_SETFONT или DS_SHELLFONT.

charset

Тип: BYTE

Используемый набор символов. Дополнительные сведения см. в разделе элемент lfcharsetобъекта LOGFONT.

Этот элемент присутствует только в том случае, если элемент стиля задает DS_SETFONT или DS_SHELLFONT.

Шрифт

Тип: WCHAR[stringLen]

Имя шрифта.

Этот элемент присутствует только в том случае, если элемент стиля задает DS_SETFONT или DS_SHELLFONT.

Комментарии

Расширенный шаблон диалогового окна можно использовать вместо стандартного в функциях CreateDialogIndirectParam, DialogBoxIndirectParam, CreateDialogIndirect и DialogBoxIndirect .

За заголовком DLGTEMPLATEEX в расширенном шаблоне диалогового окна следует одна или несколько структур DLGITEMTEMPLATEEX , описывающих элементы управления диалогового окна. Элемент cDlgItems структуры DLGITEMTEMPLATEEX указывает количество структур DLGITEMTEMPLATEEX , которые следуют в шаблоне.

Каждая структура DLGITEMTEMPLATEEX в шаблоне должна быть выровнена по границе DWORD . Если элемент стиля задает DS_SETFONT или DS_SHELLFONT стиль, первая структура DLGITEMTEMPLATEEX начинается с первой границы DWORD после строки шрифта . Если эти стили не указаны, первая структура начинается с первой границы DWORD после строки заголовка .

Массивы меню, windowClass, title и typeface должны быть выровнены по границам WORD.

При указании символьных строк в массивах меню, windowClass, title и typeface необходимо использовать строки Юникода. Используйте функцию MultiByteToWideChar для создания этих строк Юникода из строк ANSI.

Элементы x, y, cx и cy задают значения в единицах диалогового окна. Эти значения можно преобразовать в единицы экрана (пиксели) с помощью функции MapDialogRect .

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]

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

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

CreateDialogIndirect

CreateDialogIndirectParam

DialogBoxIndirect

DialogBoxIndirectParam

DLGITEMTEMPLATEEX

MapDialogRect

WM_SETFONT

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

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

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

LOGFONT

MultiByteToWideChar