DLGITEMTEMPLATE

【勇芳软件工作室】汉化HomePreviousNext

DLGITEMTEMPLATE结构定义对话框中控件的尺寸和样式。这些结构中的一个或多个与DLGTEMPLATE结构组合以形成对话框的标准模板。

typedef struct { // DLIT

DWORD style;

DWORD dwExtendedStyle;

short x;

short y;

short cx;

short cy;

WORD id;

} DLGITEMTEMPLATE;

会员

样式

指定控件的样式。该成员可以是窗口样式值(例如WS_BORDER)和一个或多个控件样式值(如BS_PUSHBUTTON和ES_LEFT)的组合。

dwExtendedStyle

指定窗口的扩展样式。该成员不用于在对话框中创建控件,但使用对话框模板的应用程序可以使用它来创建其他类型的窗口。

x

指定控件左上角的【x】 - 对齐框单位。该坐标始终相对于对话框的客户区域的左上角。

y

指定控件左上角的【y】 - 对齐框单位。该坐标始终相对于对话框的客户区域的左上角。

cx

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

cy

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

id

指定控制标识符。

备注

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

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

紧随每个DLGITEMTEMPLATE结构是一个类数组,用于标识控件的窗口类。如果此数组的第一个元素是除0xFFFF之外的任何值,则系统将该数组视为一个空值终止的Unicode字符串,该字符串指定注册的窗口类的名称。如果第一个元素是0xFFFF,则该数组有一个额外的元素指定预定义的系统类的序数值。序数可以是以下原子值之一。

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

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

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

如果您在类和标题数组中指定字符串,则必须使用Unicode字符串。要创建适用于Windows NT和Windows 95的代码,请使用MultiByteToWideChar函数来生成这些Unicode字符串。

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

也可以看看

CreateDialogIndirect, CreateDialogIndirectParam, CreateWindowEx, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MapDialogRect, MultiByteToWideChar, WM_CREATE