|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
DLGTEMPLATE
The DLGTEMPLATE structure defines the dimensions and style of a dialog box. This structure, always the first in a standard template for a dialog box, also specifies the number of controls in the dialog box and therefore specifies the number of subsequent DLGITEMTEMPLATE structures in the template.
typedef struct { // dltt DWORD style; DWORD dwExtendedStyle; WORD cdit; short x; short y; short cx; short cy; } DLGTEMPLATE;
Members
style
Specifies the style of the dialog box. This member can be a combination of window style values (such as WS_CAPTION and WS_SYSMENU) and one or more of the following dialog box style values:
Value Meaning DS_3DLOOK Gives the dialog box a nonbold font and draws three-dimensional borders around control windows in the dialog box. The DS_3DLOOK style is required only by Win32-based applications compiled for versions of Windows earlier than Windows 95 or Windows NT 4.0. The system automatically applies the three-dimensional look to dialog boxes created by applications compiled for current versions of Windows. DS_ABSALIGN Indicates that the coordinates of the dialog box are screen coordinates. If this style is not specified, Windows assumes they are client coordinates. DS_CENTER Centers the dialog box in the working area; that is, the area not obscured by the tray. DS_CENTERMOUSE Centers the mouse cursor in the dialog box. DS_CONTEXTHELP Includes a question mark in the title bar of the dialog box. When the user clicks the question mark, the cursor changes to a question mark with a pointer. If the user then clicks a control in the dialog box, the control receives a WM_HELP message. The control should pass the message to the dialog box procedure, which should call the WinHelp function using the HELP_WM_HELP command. The Help application displays a pop-up window that typically contains help for the control. Note that DS_CONTEXTHELP is only a placeholder. When the dialog box is created, the system checks for DS_CONTEXTHELP and, if it is there, adds WS_EX_CONTEXTHELP to the extended style of the dialog box. WS_EX_CONTEXTHELP cannot be used with the WS_MAXIMIZEBOX or WS_MINIMIZEBOX styles. DS_CONTROL Creates a dialog box that works well as a child window of another dialog box, much like a page in a property sheet. This style allows the user to tab among the control windows of a child dialog box, use its accelerator keys, and so on. DS_FIXEDSYS Causes the dialog box to use the SYSTEM_FIXED_FONT instead of the default SYSTEM_FONT. SYSTEM_FIXED_FONT is a monospace font compatible with the System font in Windows versions earlier than 3.0. DS_LOCALEDIT Applies to 16-bit applications only. This style directs edit controls in the dialog box to allocate memory from the application's data segment. Otherwise, edit controls allocate storage from a global memory object. DS_MODALFRAME Creates a dialog box with a modal dialog-box frame that can be combined with a title bar and System menu by specifying the WS_CAPTION and WS_SYSMENU styles. DS_NOFAILCREATE Windows 95 only: Creates the dialog box even if errors occur ѕ for example, if a child window cannot be created or if the system cannot create a special data segment for an edit control. DS_NOIDLEMSG Suppresses WM_ENTERIDLE messages that Windows would otherwise send to the owner of the dialog box while the dialog box is displayed. DS_SETFONT Indicates that the header of the dialog box template contains additional data specifying the font to use for text in the client area and controls of the dialog box. The font data begins on the WORD boundary that follows the title array. It specifies a 16-bit point size value and a Unicode font name string. If possible, the system creates a font according to the specified values. Then the system passes the handle of the font to the dialog box and to each control by sending them the WM_SETFONT message. If this style is not specified, the dialog box template does not include the font data. DS_SETFOREGROUND Causes the system to use the SetForegroundWindow function to bring the dialog box to the foreground. DS_SYSMODAL Creates a system-modal dialog box. This style causes the dialog box to have the WS_EX_TOPMOST style, but otherwise has no effect on the dialog box or the behavior of other windows in the system when the dialog box is displayed.
dwExtendedStyle
Specifies extended styles for a window. This member is not used to create dialog boxes, but applications that use dialog box templates can use it to create other types of windows.
cdit
Specifies the number of items in the dialog box.
x
Specifies the x-coordinate, in dialog box units, of the upper-left corner of the dialog box.
y
Specifies the y-coordinate, in dialog box units, of the upper-left corner of the dialog box.
cx
Specifies the width, in dialog box units, of the dialog box.
cy
Specifies the height, in dialog box units, of the dialog box.
Remarks
In a standard template for a dialog box, the DLGTEMPLATE structure is always immediately followed by three variable-length arrays that specify the menu, class, and title for the dialog box. When the DS_SETFONT style is given, these arrays are also followed by a 16-bit value specifying point size and another variable-length array specifying a typeface name. Each array consists of one or more 16-bit elements. The menu, class, title, and font arrays must be aligned on WORD boundaries.
Immediately following the DLGTEMPLATE structure is a menu array that identifies a menu resource for the dialog box. If the first element of this array is 0x0000, the dialog box has no menu and the array has no other elements. If the first element is 0xFFFF, the array has one additional element that specifies the ordinal value of a menu resource in an executable file. If the first element has any other value, the system treats the array as a null-terminated Unicode string that specifies the name of a menu resource in an executable file.
Following the menu array is a class array that identifies the window class of the control. If the first element of the array is 0x0000, the system uses the predefined dialog box class for the dialog box and the array has no other elements. If the first element is 0xFFFF, the array has one additional element that specifies the ordinal value of a predefined system window class. If the first element has any other value, the system treats the array as a null-terminated Unicode string that specifies the name of a registered window class.
Following the class array is a title array that specifies a null-terminated Unicode string that contains the title of the dialog box. If the first element of this array is 0x0000, the dialog box has no title and the array has no other elements. The 16-bit point size value and the typeface array follow the title array, but only if the style member specifies the DS_SETFONT style. The point size value specifies the point size of the font to use for the text in the dialog box and its controls. The typeface array is a null-terminated Unicode string specifying the name of the typeface for the font. When these values are given, Windows creates a font having the given size and typeface (if possible) and sends a WM_SETFONT message to the dialog box procedure and the control window procedures as it creates the dialog box and controls.
Following the DLGTEMPLATE header in a standard dialog box template are one or more DLGITEMTEMPLATE structures that define the dimensions and style of the controls in the dialog box. The cdit member specifies the number of DLGITEMTEMPLATE structures in the template. These DLGITEMTEMPLATE structures must be aligned on DWORD boundaries. If you specify character strings in the menu, class, title, or typeface arrays, you must use Unicode strings. To create code that works on both Windows NT and Windows 95, use the MultiByteToWideChar function to generate these Unicode strings.
The x, y, cx, and cy members specify values in dialog box units. You can convert these values to screen units (pixels) by using the MapDialogRect function.
See Also
CreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATEEX, MapDialogRect, MultiByteToWideChar
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
DLGTEMPLATE
Структура DLGTEMPLATE определяет измерения и стиль диалогового ящика. Эта структура, всегда первый в стандартном шаблоне для диалогового ящика, также определяет количество элементов управления в диалоговом ящике и следовательно определяет число последующих структур DLGITEMTEMPLATE в шаблоне.
typedef struct { // dltt стиль DWORD; DWORD dwExtendedStyle; СЛОВО cdit; перемычка x; перемычка y; перемычка cx; перемычка cy; } DLGTEMPLATE;
Участники
стиль
Определяет стиль диалогового ящика. Этот член может быть комбинацией величин стиля окна (как например, WS_CAPTION и WS_SYSMENU) и одно или более из следующего общаются величины стиля ящика:
Значение Величины DS_3DLOOK Дает диалоговому ящику шрифт nonbold и делает трехмерными границами вокруг управляющего окна в диалоговом ящике. Стиль DS_3DLOOK требуется только базирующимися приложениями Win32 компилированными для версий Windows раньше чем Windows 95 или Windows NT 4.0. Система автоматически прилагает трехмерный взгляд, чтобы общаться блоки созданные приложениями компилированными для текущих версий Windows. DS_ABSALIGN Указывает, что координаты диалогового блока являются экранными координатами. Если этот стиль не определен, Windows принимает что они - координаты клиента. DS_CENTER Центрирует диалогового блока в рабочей области; то есть, область не затемнялась поддоном. DS_CENTERMOUSE Центрирует курсор мыши в диалоговом блоке. DS_CONTEXTHELP Включает знак вопроса в зону названия диалогового блока. Когда пользователь щелкает знак вопроса, курсор изменяется в знак вопроса с указателем. Если пользователь, тогда щелкает управление в диалоговый блока, управление получает сообщение WM_HELP. Управление должно передавать сообщение диалоговому блоку процедуры, которое должно вызывать функцию WinHelp, использовавшую команду HELP_WM_HELP. Приложение Подсказки отображает управляющее окно, которое обычно содержит подсказку для управления. Отметьте, что DS_CONTEXTHELP - только метка-заполнитель. Когда диалоговый блок создан, система проверяет на наличие DS_CONTEXTHELP и, если она - там, добавляет WS_EX_CONTEXTHELP к расширенному стилю диалогового блока. WS_EX_CONTEXTHELP не может быть использован WS_MAXIMIZEBOX или стилями WS_MINIMIZEBOX. DS_CONTROL Создает диалогового блока, который прокладывает хорошо как окно ребенка другого диалогового блока, очень похожий страница на листе свойства. Этот стиль допускает пользователя в таб. среди управляющего окна диалогового блока ребенка, использует свои клавиши акселератора, и так далее. DS_FIXEDSYS Заставляет диалогового блока, чтобы использовать SYSTEM_FIXED_FONT вместо по умолчанию SYSTEM_FONT. SYSTEM_FIXED_FONT - шрифт интервала совместимый с шрифтом Системы в версиях Windows раньше чем 3.0. DS_LOCALEDIT Относится к 16- битовым приложениям только. Этот стиль направляет элементы управления редактирования в диалоговом блоке, чтобы распределять память из прикладного сегмента данных. В противном случае, элементы управления редактирования распределяют память с глобального объекта памяти. DS_MODALFRAME Создает диалогового блока с диалоговым блоком модального фрейма, который может быть объединен зоной названия и меню Системы определяя WS_CAPTION и стили WS_SYSMENU. DS_NOFAILCREATE Windows 95 только: Создает диалогового блока даже если бы ошибки происходят U например, если окно ребенка не может быть создано или если система не может создать специальный сегмент данных для управления редактирования. DS_NOIDLEMSG Подавляет сообщения WM_ENTERIDLE, что Windows было бы в противном случае посылаться владельцу диалогового блока тогда как диалоговый блок отображен. DS_SETFONT Указывает, что заголовок диалогового шаблона блока содержит дополнительные данные, определяющие шрифт, чтобы использоваться для текста в области клиента и управления диалоговым блоком. Шрифтовые данные начинается на ТЕКСТОВОЙ границе за которой следует массиву названия. Это определяет величину размера 16- битовой точки и строка шрифтового имени Уникода. Если возможно, система создает шрифт согласно определенным величинам. Затем система передает ручку шрифта диалоговому блоку и на каждое управление посылая им сообщение WM_SETFONT. Если этот стиль не определен, диалоговый шаблон блока не включает шрифтовые данные. DS_SETFOREGROUND Заставляет систему, чтобы использовать функцию SetForegroundWindow, чтобы переносить диалогового блока на передний план. DS_SYSMODAL Создает системного-модального диалогового блока. Этот стиль заставляет диалогового блока, чтобы иметь стиль WS_EX_TOPMOST, но в противном случае не имеет эффект на диалоговом блоке или поведение другого окна в системе когда диалоговый блок отображен.
dwExtendedStyle
Определяет расширенные стили для окна. Этот элемент не использован, чтобы создавать диалоговых блоков, но приложений, которые используют диалоговые шаблоны блока могут использовать это, чтобы создавать другие типы окна.
cdit
Определяет количество пунктов в диалоговом блоке.
x
Определяет x-coordinate, на диалоговых устройствах блока, верхнего левого угла диалогового блока.
y
Определяет y-coordinate, на диалоговых устройствах блока, верхнего левого угла диалогового блока.
cx
Определяет ширину, на диалоговых устройствах блока, диалогового блока.
cy
Определяет высоту, на диалоговых устройствах блока, диалогового блока.
Замечания
В стандартном шаблоне для диалогового блока, структура DLGTEMPLATE всегда немедленно сопровождана тремя переменными-длиной подготавливает, что определяет меню, класс и называется для диалогового блока. Когда стиль DS_SETFONT дан, эти подготавливают, также сопровождены 16- битовой величиной, определяющей размер точки и другого определения переменной длины массива тип шрифта имени. Каждый массив состоит из одного или более 16- битовых элементов. Меню, класс, название, и шрифт подготавливает, должны быть выровнены на ТЕКСТОВЫХ границах.
Немедленно следующее структуры DLGTEMPLATE является массивом меню, который идентифицирует ресурс меню для диалогового блока. Если первый элемент этого массива - 0x0000, диалоговый блок не имеет меню и массив не имеет другие элементы. Если первый элемент - 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковую величину ресурса меню в выполняемом файле. Если первый элемент имеет любую другую величину, система рассматривает массив как недействительный расторгнутую строку Уникода, которая определяет имя ресурса меню в выполняемом файле.
Следующее массива меню является массивом класса, который идентифицирует класс окна управления. Если первый элемент массива - 0x0000, система использует встроенный диалоговый класс блока для диалогового блока и массив не имеет другие элементы. Если первый элемент - 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковую величину встроенного системного класса окна. Если первый элемент имеет любую другую величину, система рассматривает массив как недействительный расторгнутую строку Уникода, которая определяет имя зарегистрированного класса окна.
Следующее массива класса является массивом названия, который определяет недействительный расторгнутую строку Уникода, которая содержит название диалогового блока. Если первый элемент этого массива - 0x0000, диалоговый блок не имеет название и массив не имеет другие элементы. Величина размера 16- битовой точки и тип шрифта массива следуют за массивом названия, но только если элемент стиля определяет стиль DS_SETFONT. Величина размера точки определяет размер точки шрифта, чтобы использоваться для текста в диалоговом блоке и элементах управления. Тип шрифта массива является недействительный расторгнутой строкой Уникода, определяющей имя типа шрифта для шрифта. Когда эти величины даны, Windows создает шрифт, имеющий данный размер и тип шрифта (если возможно) и посылает сообщению WM_SETFONT диалоговому блоку процедуры и управляющие процедуры окна как это создает диалогового блока и регулирует.
Следуя за заголовком DLGTEMPLATE в стандартном диалоговом шаблоне блока - одна или более структур DLGITEMTEMPLATE, которые определяют измерения и стиль элементов управления в диалоговом блоке. Элемент cdit определяет число структур DLGITEMTEMPLATE в шаблоне. Эти структуры DLGITEMTEMPLATE должны быть выровнены на границах DWORD. Если Вы определяете символьным строкам в меню, классе, назовитесь, или тип шрифта подготавливается, Вы должны использовать строки Уникода. Для того, чтобы создавать код, который работает на как Windows NT так и Windows 95, используйте функцию MultiByteToWideChar, чтобы генерировать эти строки Уникода.
x, y, cx, И cy участники определяют величины на диалоговых устройствах блока. Вы можете преобразовать эти величины, чтобы отгораживать устройства (пиксели) используя функцию MapDialogRect.
Смотри Также
CreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATEEX, MapDialogRect, MultiByteToWideChar
|
|
|
|
| |