Структура DLGTEMPLATE


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

Синтаксис

typedef struct {
    DWORD  style;
    DWORD  dwExtendedStyle;
    WORD  cdit;
    short  x;
    short  y;
    short  cx;
    short  cy;
} DLGTEMPLATE, *LPDLGTEMPLATE;

Члены структуры

style

Определяет стиль диалогового окна. Этот член структуры может быть комбинацией значений стиля окна (таких как WS_CAPTION и WS_SYSMENU) и  значений стиля блока диалога (таких как  DS_CENTER).

Список стилей окна, см. в описании функции CreateWindow. Список стилей диалогового окна, см. в статье Шаблоны диалогового окна.

Если член структуры style включает в себя стиль DS_SETFONT, заголовок шаблона диалогового окна содержит дополнительные данные, определяющие шрифт, который используется для текста в рабочей области и органах управления блока диалога. Данные шрифта начинаются по границе слова (WORD), которая следует за массивом заголовка. Данные шрифта устанавливают 16-разрядное значение размера в пунктах, а шрифт Unicode именует последовательность символов. Если возможно, система создает шрифт согласно заданным значениям. Затем система отправляет  сообщение WM_SETFONT диалоговому окну и каждому органу управления, чтобы предоставить дескриптор шрифта. Если DS_SETFONT не определен, шаблон диалогового окна не включает в себя данные о шрифте.

Windows 2000/XP:  стиль DS_SHELLFONT не поддерживается в заголовке DLGTEMPLATE.

dwExtendedStyle

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

cdit

Устанавливает число элементов в диалоговом окне.

x

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

y

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

cx

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

cy

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

Замечания

В стандартном шаблоне блока диалога, структура DLGTEMPLATE всегда непосредственно сопровождается тремя массивами переменной длины, которые определяют меню, класс и заголовок для диалогового окна. Когда дается стиль DS_SETFONT, эти массивы сопровождаются к тому же и 16-разрядным значением, определяющим размер в шрифта пунктах, а другой массив переменной длины определяет название шрифта. Каждый массив состоит из одного или нескольких 16-разрядных элементов. Массивы меню, класса, заголовка и шрифта должны быть выровнены по границам слова (WORD).

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

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

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

16-разрядный  массив значений размера шрифта в пунктах и его гарнитуры следуют за массивом заголовка, но только тогда, если член структуры style определяет стиль DS_SETFONT. Значение размера определяет размер шрифта в пунктах, который используется для текста в диалоговом окне и его органах управления. Массив гарнитуры шрифта является строкой  Unicode с символом конца строки ('\0'), определяющей название гарнитуры для шрифта. Когда эти значения определены, система, поскольку она создает блок диалога и элементы управления, создает шрифт, имеющий заданный размер и гарнитуру (если возможно), и отправляет сообщение WM_SETFONT процедуре диалогового окна и оконным процедурам органов управления.

После заголовка DLGTEMPLATE в стандартном шаблоне диалогового окна имеется одна или несколько структур DLGITEMTEMPLATE, которые определяют габариты и стиль органов управления в блоке диалога. Член структуры cdit определяет число структур DLGITEMTEMPLATE в шаблоне. Эти структуры DLGITEMTEMPLATE должны быть выровнены по границам двойного слова (DWORD).

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

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

Смотри также 

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

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

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

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

Windows Me

Да

Windows 98

Да

Windows 95

Да

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

-

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

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

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

Не имеется

 

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

Hosted by uCoz