DLGITEMTEMPLATE 结构 (winuser.h)

定义对话框中控件的尺寸和样式。 其中一个或多个结构与 DLGTEMPLATE 结构组合在一起,形成对话框的标准模板。

语法

typedef struct {
  DWORD style;
  DWORD dwExtendedStyle;
  short x;
  short y;
  short cx;
  short cy;
  WORD  id;
} DLGITEMTEMPLATE;

成员

style

类型:DWORD

控件的样式。 此成员可以是 窗口样式值 ((例如 WS_BORDER) )和一个或多个 控件样式值 ((例如 BS_PUSHBUTTONES_LEFT) )的组合。

dwExtendedStyle

类型:DWORD

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

x

类型: short

控件左上角的 x 坐标(以对话框为单位)。 此坐标始终相对于对话框工作区的左上角。

y

类型: short

控件左上角的 y 坐标(以对话框为单位)。 此坐标始终相对于对话框工作区的左上角。

cx

类型: short

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

cy

类型: short

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

id

类型: WORD

控件标识符。

注解

在对话框的标准模板中, DLGITEMTEMPLATE 结构始终紧跟三个长度可变的数组,这些数组指定控件的类、标题和创建数据。 每个数组由一个或多个 16 位元素组成。

模板中的每个 DLGITEMTEMPLATE 结构必须在 DWORD 边界上对齐。 类和标题数组必须在 WORD 边界上对齐。 创建数据数组必须在 WORD 边界上对齐。

紧随每个 DLGITEMTEMPLATE 结构后面的是一个类数组,用于指定控件的窗口类。 如果此数组的第一个元素是除 0xFFFF 以外的任何值,则系统会将该数组视为以 null 结尾的 Unicode 字符串,该字符串指定已注册窗口类的名称。 如果第一个元素0xFFFF,则数组具有一个附加元素,用于指定预定义系统类的序号值。 序号可以是以下原子值之一。

Value 含义
0x0080 Button
0x0081 编辑
0x0082 静态
0x0083 列表框
0x0084 滚动条
0x0085 组合框
 

类数组后面的是一个标题数组,其中包含控件的初始文本或资源标识符。 如果此数组的第一个元素是0xFFFF,则数组具有一个附加元素,用于指定可执行文件中的资源(如图标)的序号值。 可以为加载和显示图标或其他资源而不是文本的控件(例如静态图标控件)使用资源标识符。 如果第一个元素是除 0xFFFF 以外的任何值,则系统会将数组视为指定初始文本的以 null 结尾的 Unicode 字符串。

创建数据数组从标题数组后的下一 个 WORD 边界开始。 此创建数据可以是任何大小和格式。 如果创建数据数组的第一个单词为非零,则指示创建数据的大小(以字节为单位), (包括大小字) 。 控件的窗口过程必须能够解释数据。 当系统创建控件时,它会在发送到控件的WM_CREATE消息的 lParam 参数中传递指向此数据的指针。

如果在类和标题数组中指定字符串,则必须使用 Unicode 字符串。 使用 MultiByteToWideChar 函数从 ANSI 字符串生成 Unicode 字符串。

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

要求

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

请参阅

概念性

CreateDialogIndirect

CreateDialogIndirectParam

CreateWindowEx

DLGITEMTEMPLATEEX

DLGTEMPLATE

DLGTEMPLATEEX

对话框

DialogBoxIndirect

DialogBoxIndirectParam

MapDialogRect

MultiByteToWideChar

其他资源

引用

WM_CREATE