DLGTEMPLATE 结构 (winuser.h)

定义对话框的尺寸和样式。 此结构始终是对话框的标准模板中的第一个结构,还指定对话框中的控件数,因此指定模板中后续 DLGITEMTEMPLATE 结构的数目。

语法

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

成员

style

类型:DWORD

对话框的样式。 此成员可以是 窗口样式值 ((如 WS_CAPTIONWS_SYSMENU) )和 对话框样式值 的组合, (如 DS_CENTER) 。

如果样式成员包括 DS_SETFONT 样式,则对话框模板的标题包含指定用于工作区和对话框控件中的文本的字体的其他数据。 字体数据从标题数组后面的 WORD 边界开始。 字体数据指定 16 位点大小值和 Unicode 字体名称字符串。 如果可能,系统会根据指定的值创建字体。 然后,系统会向对话框和每个控件发送 WM_SETFONT 消息,以提供字体的句柄。 如果未指定 DS_SETFONT ,则对话框模板不包括字体数据。

DLGTEMPLATE 标头不支持DS_SHELLFONT样式。

dwExtendedStyle

类型:DWORD

窗口的扩展样式。 此成员不用于创建对话框,但使用对话框模板的应用程序可以使用它来创建其他类型的窗口。 有关值的列表,请参阅 扩展窗口样式

cdit

类型: WORD

对话框中的项数。

x

类型: short

对话框左上角的 x 坐标(以对话框单位为单位)。

y

类型: short

对话框左上角的 y 坐标(以对话框单位为单位)。

cx

类型: short

对话框的宽度(以对话框单位为单位)。

cy

类型: short

对话框的高度(以对话框单位为单位)。

注解

在对话框的标准模板中, DLGTEMPLATE 结构始终紧跟三个长度可变的数组,这些数组指定对话框的菜单、类和标题。 指定DS_SETFONT样式时,这些数组后跟一个指定点大小的 16 位值和另一个指定字样名称的可变长度数组。 每个数组由一个或多个 16 位元素组成。 菜单、类、标题和字体数组必须在 WORD 边界上对齐。

DLGTEMPLATE 结构紧随其后的是一个菜单数组,用于标识对话框的菜单资源。 如果此数组的第一个元素0x0000,则对话框没有菜单,并且数组没有其他元素。 如果第一个元素0xFFFF,则数组有一个附加元素,用于指定可执行文件中菜单资源的序号值。 如果第一个元素具有任何其他值,则系统将数组视为以 null 结尾的 Unicode 字符串,该字符串指定可执行文件中菜单资源的名称。

菜单数组之后是标识对话框的窗口类的类数组。 如果数组的第一个元素0x0000,则系统将预定义的对话框类用于对话框,并且数组没有其他元素。 如果第一个元素0xFFFF,则数组有一个附加元素,用于指定预定义系统窗口类的序号值。 如果第一个元素具有任何其他值,则系统将数组视为以 null 结尾的 Unicode 字符串,该字符串指定已注册的窗口类的名称。

类数组之后是一个标题数组,该数组指定包含对话框标题的以 null 结尾的 Unicode 字符串。 如果此数组的第一个元素0x0000,则对话框没有标题,并且数组没有其他元素。

16 位点大小值和字样数组遵循标题数组,但前提是 样式 成员指定DS_SETFONT样式。 点大小值指定用于对话框及其控件中的文本的字体的点大小。 字样数组是一个以 null 结尾的 Unicode 字符串,用于指定字体的字样名称。 指定这些值后,系统会创建具有指定大小和字样 (字体(如果可能) ),并在创建对话框和控件时向对话框过程和控件窗口过程发送WM_SETFONT消息。

标准对话框模板中的 DLGTEMPLATE 标头之后是一个或多个 DLGITEMTEMPLATE 结构,用于定义对话框中控件的尺寸和样式。 cdit 成员指定模板中 DLGITEMTEMPLATE 结构的数目。 这些 DLGITEMTEMPLATE 结构必须在 DWORD 边界上对齐。

如果在菜单、类、标题或字样数组中指定字符串,则必须使用 Unicode 字符串。

xycxcy 成员以对话框单位指定值。 可以使用 MapDialogRect 函数将这些值转换为) (像素的屏幕单位。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 winuser.h (包括 Windows.h)

请参阅

概念性

CreateDialogIndirect

CreateDialogIndirectParam

DLGITEMTEMPLATE

DLGITEMTEMPLATEEX

DLGTEMPLATEEX

对话框

DialogBoxIndirect

DialogBoxIndirectParam

MapDialogRect

MultiByteToWideChar

其他资源

引用