CreateDialogIndirect 编辑

CreateDialogIndirect宏从内存中的对话框模板创建无模式对话框。CreateDialogIndirect宏使用CreateDialogIndirectParam功能。

HWND CreateDialogIndirect(

HINSTANCE 【的hInstance】,//处理应用程序实例
LPCDLGTEMPLATE 【lpTemplate】,//指向对话框模板的指针
HWND 【hWndParent】,//处理所有者窗口
DLGPROC 【lpDialogFunc】//指向对话框的过程
); 

参数

【的hInstance】

标识创建对话框的模块的实例。

【lpTemplate】

指向包含CreateDialogIndirect用于创建对话框的模板的全局内存对象。对话框模板由描述该对话框的标题组成,后跟一个或多个附加的数据块,描述对话框中的每个控件。模板可以使用标准格式或扩展格式。

在标准模板中,标题是DLGTEMPLATE结构,后面跟着可变长度的数组。每个控件的数据由一个DLGITEMTEMPLATE结构组成,后面是其他可变长度的数组。

在扩展对话框模板中,标题使用DLGTEMPLATEEX格式,控件定义使用DLGITEMTEMPLATEEX格式。

【hWndParent】

标识拥有该对话框的窗口。

【lpDialogFunc】

指向对话框的过程。有关对话框过程的详细信息,请参阅DialogProc.

返回值

如果函数成功,则返回值是对话框的窗口句柄。

如果函数失败,返回值为NULL。

备注

CreateDialogIndirect宏使用CreateWindowEx功能创建对话框。CreateDialogIndirect然后将WM_INITDIALOG消息发送到对话框过程。如果模板指定了DS_SETFONT样式,该函数还会向对话框过程发送一条WM_SETFONT消息。如果模板指定了WS_VISIBLE样式,该函数将显示该对话框。最后,CreateDialogIndirect将窗口句柄返回到对话框。

CreateDialogIndirect返回后,您可以使用ShowWindow功能显示对话框(如果尚未显示)。要销毁该对话框,请使用DestroyWindow功能。

在标准对话框模板中,DLGTEMPLATE结构和每个DLGITEMTEMPLATE结构必须在DWORD边界上对齐。DLGITEMTEMPLATE结构之后的创建数据数组也必须在DWORD边界上对齐。模板中的所有其他可变长度数组必须在WORD边界上对齐。

在扩展对话框模板中,DLGTEMPLATEEX标题和DLGITEMTEMPLATEEX控件定义中的每一个必须在DWORD边界上对齐。DLGITEMTEMPLATEEX结构之后的创建数据数组(如果有)也必须在DWORD边界上对齐。模板中的所有其他可变长度数组必须在WORD边界上对齐。

对话框模板中的所有字符串,如对话框和按钮的标题必须是Unicode字符串。要创建适用于Windows NT和Windows 95的代码,请使用MultiByteToWideChar函数生成这些Unicode字符串。

Windows 95:系统最多支持16,364个窗口句柄。

也可以看看

CreateDialog, CreateDialogIndirectParam, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MultiByteToWideChar, ShowWindow, WM_INITDIALOG, WM_SETFONT

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:34 次

字数:5021

最后编辑:8 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。