DLGTEMPLATEEX
The DLGTEMPLATEEX
structure is not defined in any standard header file. The structure definition
is provided here to explain the format of an extended template for a dialog
box.
An extended
dialog box template begins with a DLGTEMPLATEEX header that describes
the dialog box and specifies the number of controls in the dialog box. For each
control in a dialog box, an extended dialog box template has a block of data
that uses the 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; // name or
ordinal of a menu resource
//
sz_Or_Ord windowClass; // name or
ordinal of a window class
//
WCHAR title[titleLen]; //
title string of the dialog box
//
short pointsize; // only if DS_SETFONT flag is set
//
short weight; // only if DS_SETFONT flag is set
//
short bItalic; // only if DS_SETFONT flag is set
//
WCHAR font[fontLen]; // typeface name, if DS_SETFONT is set
// } DLGTEMPLATEEX;
Members
dlgVer
Indicates
whether a template is an extended dialog box template. A value of 0xFFFF
indicates an extended dialog box template. In this case, the signature
member specifies the template version number. If dlgVer is any value
other than 0xFFFF, this is a standard template that uses the DLGTEMPLATE
signature
Specifies the
version number of the extended dialog box template. This member must specify 1.
helpID
Specifies the
help context identifier for the dialog box window. When the system sends a WM_HELP
exStyle
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.
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, the system treats them as 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 procedure, which
should call the WinHelp 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. You cannot use the WS_EX_CONTEXTHELP
style 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 DLGTEMPLATEEX header of the extended dialog box template
contains four additional members (pointsize, weight, bItalic,
and font) that describe the font to use for the text in the client
area and controls of the dialog box. If possible, the system creates a font
according to the values specified in these members. Then the system passes
the handle of the font to the dialog box and to each control by sending them
the WM_SETFONT If this
style is not specified, the extended dialog box template does not include the
pointsize, weight, bItalic, and font members. |
DS_SETFOREGROUND |
Causes the
system to use the SetForegroundWindow |
DS_SYSMODAL |
Creates a
system-modal dialog box. This style causes the dialog box to have the
WS_EX_TOPMOST style. Otherwise, it has no effect on the dialog box or the
behavior of other windows in the system when the dialog box is displayed. |
cDlgItems
Specifies the
number of controls 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.
menu
Specifies a
variable-length array of 16-bit elements 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.
windowClass
Specifies a
variable-length array of 16-bit elements that identifies the window class of
the dialog box. 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.
title
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.
pointsize
Specifies the
point size of the font to use for the text in the dialog box and its controls.
The pointsize, weight, bItalic, and font members
are present in an extended dialog box template only if the style member
specifies the DS_SETFONT style.
weight
Specifies the
weight of the font in the range 0 through 1000. This can be any of the values
listed for the lfWeight member of the LOGFONT
bItalic
Indicates
whether the font is italic. If this value is TRUE, the font is italic. This
member is present only if the style member specifies DS_SETFONT.
font
Specifies a
null-terminated Unicode string that contains the name of the typeface for the
font. This member is present only if the style member specifies
DS_SETFONT.
Remarks
You can use
an extended dialog box template instead of a standard dialog box template in
the CreateDialogIndirectParam
Following the
DLGTEMPLATEEX header in an extended dialog box template is one or more DLGITEMTEMPLATEEX
Each DLGITEMTEMPLATEEX
structure in the template must be aligned on a DWORD boundary. If the style
member specifies the DS_SETFONT style, the first DLGITEMTEMPLATEEX
structure begins on the first DWORD boundary after the font
string. If DS_SETFONT is not specified, the first structure begins on the first
DWORD boundary after the title string.
The menu,
windowClass, title, and font arrays must be aligned on WORD
boundaries.
If you
specify character strings in the menu, windowClass, title,
and font 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