DLGITEMTEMPLATEEX

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

任何标准头文件中都没有定义DLGITEMTEMPLATEEX结构。此处提供了结构定义,以说明对话框的扩展模板的格式。

对于对话框中的每个控件,扩展对话框模板具有使用DLGITEMTEMPLATEEX格式描述控件的数据块。有关扩展对话框模板格式的说明,请参阅DLGTEMPLATEEX.

// typedef struct {en

// DWORD helpID;

// DWORD exStyle;

// DWORD style;

// short x;

// short y;

// short cx;

//短cy

// WORD id;

// sz_Or_Ord windowClass; //窗口类的名称或序数

// sz_Or_Ord title; //资源的标题字符串或序数

// WORD extraCount; //以下创建数据的字节

// } DLGITEMTEMPLATEEX;

会员

helpID

指定控件的帮助上下文标识符。当系统发送WM_HELP消息时,它会传递dwContextId结构dwContextId成员中的helpID值。

dwExtendedStyle

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

样式

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

x

指定控件左上角的x坐标(以对话框为单位)。该坐标始终相对于对话框的客户区域的左上角。

y

指定控件左上角的y坐标(以对话框为单位)。该坐标始终相对于对话框的客户区域的左上角。

cx

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

cy

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

id

指定控制标识符。

windowClass

指定用于标识控件的窗口类的16位元素的可变长度数组。如果此数组的第一个元素是除0xFFFF之外的任何值,则系统将该数组视为一个空值终止的Unicode字符串,该字符串指定注册的窗口类的名称。

如果第一个元素是0xFFFF,则该数组有一个额外的元素指定预定义的系统类的序数值。序数可以是以下原子值之一。

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

标题

指定包含控件的初始文本或资源标识符的16位元素的可变长度数组。如果该数组的第一个元素为0xFFFF,则该数组有一个附加元素,指定在可执行文件中标识资源(例如图标)的序数值。您可以使用控件的资源标识符(如静态图标控件)来加载和显示图标或其他资源而不是文本。

如果第一个元素是除0xFFFF之外的任何值,则系统将该数组视为指定初始文本的以空值为终止的Unicode字符串。

extraCount

指定此成员后面的创建数据的字节数。如果此值大于零,则创建数据将从下一个DWORD边界开始。此创建数据可以是任何大小和格式。控件的窗口过程必须能够解释数据。当系统创建控件时,它将向发送给控件的WM_CREATE消息的WM_CREATE参数中传递一个指向此数据的指针。

备注

对话框的扩展模板由对话框中的每个控件的DLGTEMPLATEEX标头和DLGITEMTEMPLATEEX结构组成。

每个DLGITEMTEMPLATEEX结构必须在DWORD边界上对齐。可变长度windowClass标题数组必须在WORD边界上对齐。创建数据数组(如果有)必须在DWORD边界上对齐。

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

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

也可以看看

CreateDialogIndirect, CreateDialogIndirectParam, CreateWindowEx, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGTEMPLATE, DLGTEMPLATEEX, MapDialogRect, MultiByteToWideChar