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消息时,它会在 HELPINFO 结构的 wContextId 成员中传递此值。
-
exStyle
-
类型:DWORD
-
扩展窗口样式。 创建对话框时不使用此成员,但使用对话框模板的应用程序可以使用它来创建其他类型的窗口。 有关值列表,请参阅 扩展窗口样式。
-
style
-
类型:DWORD
-
对话框的样式。 此成员可以是 窗口样式值 和 对话框样式值的组合。
如果 style 包括 DS_SETFONT 或 DS_SHELLFONT 对话框样式,则扩展对话框模板的 DLGTEMPLATEEX 标头包含四个附加成员, ( 指向、 粗细、 斜体和 字样) ,用于描述要用于工作区中的文本的字体和对话框控件。 如果可能,系统会根据这些成员中指定的值创建字体。 然后,系统会向对话框和每个控件发送 WM_SETFONT 消息,以提供字体的句柄。
有关详细信息,请参阅 对话框字体。
-
cDlgItems
-
类型: WORD
-
对话框中的控件数。
-
x
-
类型: short
-
对话框左上角的 x 坐标(以对话框单位为单位)。
-
y
-
类型: short
-
对话框左上角的 y 坐标(以对话框单位为单位)。
-
cx
-
类型: short
-
对话框的宽度(以对话框单位为单位)。
-
cy
-
类型: short
-
对话框的高度(以对话框单位为单位)。
-
菜单
-
类型: sz_Or_Ord
-
一个由 16 位元素构成的可变长度数组,用于标识对话框的菜单资源。 如果此数组的第一个元素0x0000,则对话框没有菜单,并且数组没有其他元素。 如果第一个元素0xFFFF,则数组有一个附加元素,用于指定可执行文件中菜单资源的序号值。 如果第一个元素具有任何其他值,系统会将数组视为以 null 结尾的 Unicode 字符串,该字符串指定可执行文件中的菜单资源的名称。
-
windowClass
-
类型: sz_Or_Ord
-
一个由 16 位元素构成的可变长度数组,用于标识对话框的窗口类。 如果数组的第一个元素0x0000,则系统将预定义的对话框类用于对话框,并且数组没有其他元素。 如果第一个元素0xFFFF,则数组具有一个指定预定义系统窗口类的序号值的附加元素。 如果第一个元素具有任何其他值,系统将数组视为以 null 结尾的 Unicode 字符串,该字符串指定已注册的窗口类的名称。
-
title
-
类型: WCHAR[titleLen]
-
对话框的标题。 如果此数组的第一个元素0x0000,则对话框没有标题,数组没有其他元素。
-
pointsize
-
类型: WORD
-
要用于对话框中文本及其控件的字体的点大小。
仅当 样式 成员指定 DS_SETFONT 或 DS_SHELLFONT时,此成员才存在。
-
weight
-
类型: WORD
-
该字体的粗细。 请注意,尽管这可以是为 LOGFONT 结构的 lfWeight 成员列出的任何值,但使用的任何值将自动更改为FW_NORMAL。
仅当 样式 成员指定 DS_SETFONT 或 DS_SHELLFONT时,此成员才存在。
-
斜体
-
类型: BYTE
-
指示字体是否为斜体。 如果此值为 TRUE,则字体为斜体。
仅当 样式 成员指定 DS_SETFONT 或 DS_SHELLFONT时,此成员才存在。
-
charset
-
类型: BYTE
-
要使用的字符集。 有关详细信息,请参阅 LOGFONT 的 lfcharset 成员。
仅当 样式 成员指定 DS_SETFONT 或 DS_SHELLFONT时,此成员才存在。
-
字体
-
类型: WCHAR[stringLen]
-
字体的字样的名称。
仅当 样式 成员指定 DS_SETFONT 或 DS_SHELLFONT时,此成员才存在。
备注
可以在 CreateDialogIndirectParam、DialogBoxIndirectParam、CreateDialogIndirect 和 DialogBoxIndirect 函数中使用扩展对话框模板,而不是标准对话框模板。
扩展对话框模板中的 DLGTEMPLATEEX 标头之后是描述对话框控件的一个或多个 DLGITEMTEMPLATEEX 结构。 DLGITEMTEMPLATEEX 结构的 cDlgItems 成员指定模板中遵循的 DLGITEMTEMPLATEEX 结构的数量。
模板中的每个 DLGITEMTEMPLATEEX 结构必须在 DWORD 边界上对齐。 如果样式成员指定DS_SETFONT或DS_SHELLFONT样式,则第一个 DLGITEMTEMPLATEEX 结构从字样字符串后的第一个 DWORD 边界开始。 如果未指定这些样式,则第一个结构从标题字符串后的第一个 DWORD 边界开始。
菜单、windowClass、标题和字样数组必须在 WORD 边界上对齐。
如果在 菜单、 windowClass、 title 和 typeface 数组中指定字符串,则必须使用 Unicode 字符串。 使用 MultiByteToWideChar 函数从 ANSI 字符串生成这些 Unicode 字符串。
x、y、cx 和 cy 成员以对话框单位指定值。 可以使用 MapDialogRect 函数将这些值转换为) (像素的屏幕单位。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |