Cтруктура DLGTEMPLATEEX


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

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

Синтаксис

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

Определят номер версии расширенного шаблона диалогового окна. Этот член структуры должен быть 1.

signature

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

helpID

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

exStyle

Определяет дополнительные стили для окна. Этот член структуры не используется для создания диалогового окна, однако прикладные программы, которые используют шаблоны блока диалога, могут использовать его, чтобы создать другие типы окон.

Список дополнительных стилей окна, см. в описании CreateWindowEx

style

Устанавливает стиль диалогового окна. Этот член структуры может быть комбинацией значений стиля окна и значений стиля диалогового окна. Список стилей окна, см. в описании CreateWindow. Список стилей диалогового окна см.  в статье Шаблоны диалогового окна.

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

Дополнительную информацию, см. в статье Шрифты диалогового окна.

cDlgItems

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

x

Устанавливает x-координату левого верхнего угла  блока диалога, в единицах измерения диалогового окна.

y

Устанавливает y-координату левого верхнего угла  блока диалога, в единицах измерения диалогового окна.

cx

Устанавливает ширину  блока диалога, в единицах измерения диалогового окна.

cy

Устанавливает высоту  блока диалога, в единицах измерения диалогового окна.

menu

Определяет массив переменной длины 16-разрядных элементов, который идентифицирует ресурс меню для диалогового окна. Если первый элемент этого массива - 0x0000, у блока диалога нет меню, а у массива нет других элементов. Если первый элемент - 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое значение ресурса меню в исполняемом файле. Если первый элемент имеет какое-либо другое значение, система обрабатывает массив как строку Unicode с нулевым символом в конце ('0'), которая определяет название ресурса меню в исполняемом файле.  

windowClass  

Определяет массив переменной длины 16-разрядных элементов, который идентифицирует класс диалогового окна. Если первый элемент этого массива является 0х0000, система использует предопределенный класс диалогового окна, а у массива нет других элементов. Если первый элемент является 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое значение предопределенного системного класса окна. Если первый элемент этого массива является каким-либо другим значением, система обрабатывает массив как строку Unicode с нулевым символом в конце ('0'), которая определяет название зарегистрированного класса окна.

title  

Определяет строку Unicode с нулевым символом в конце ('0'), которая содержит заголовок диалогового окна. Если первый элемент этого массива - 0x0000, у блока диалога нет заголовка, а у массива нет никаких других элементов.

pointsize  

Определяет размер шрифта в пунктах, который используется для текста в диалоговом окне и его органах управления. Этот член присутствует  только тогда, если член структуры style определяет стиль DS_SETFONT.   

weight

Определяет толщину шрифта. 

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

Этот член структуры присутствует, только тогда, если член структуры style определяет DS_SETFONT или DS_SHELLFONT.

italic  

Указывает, является ли шрифт курсивным. Если это значение - ИСТИНА (TRUE), шрифт курсивный. 

Этот член структуры присутствует, только тогда, если член структуры style определяет DS_SETFONT или DS_SHELLFONT.

charset  

Указывает символьный набор, который используется. Дополнительную информацию, см. в описании члена lfcharset структуры LOGFONT.

Этот член структуры присутствует, только тогда, если член структуры style определяет DS_SETFONT или DS_SHELLFONT.

typeface  

Определяет строку Unicode с символом конца строки ('\0'), которая содержит имя гарнитуры шрифта.

Этот член структуры присутствует, только тогда, если член структуры style определяет DS_SETFONT или DS_SHELLFONT.

Замечания

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

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

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

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

Если Вы определяете строки символов в массивах menu, windowClass, title и typeface , Вы должны использовать строки Unicode. Чтобы создать код, который работает, и в Microsoft® Windows® 95/98/Me и в Windows NT/2000/XP, используйте функцию MultiByteToWideChar, чтобы генерировать эти строки Unicode.

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

Смотри также 

Обзор Диалоговые окнаСтруктуры, используемые диалоговыми окнамиCreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATEEX, LOGFONT, MapDialogRect, MultiByteToWideChar, WM_SETFONT

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

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.51 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

-

Заголовочный файл

 

- объявлено в

-

- включено в

-

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz