原文链接 -> 传送门
函数功能:
CreateDialog 函数从一个对话框模板资源创建一个非模态对话框 , CreateDiaog 宏使用 CreateDialogParam 函数。
API 函数原型:
注释:_In_ 说明该参数是输入的,_In_opt_ 说明该参数是输入同时是可选的。
HWND WINAPI CreateDialog( _In_opt_ HINSTANCE hInstance, _In_ LPCTSTR lpTemplate, _In_opt_ HWND hWndParent, _In_opt_ DLGPROC lpDialogFunc );
参数解析:
|
参数 |
含义 |
|
hInstance |
1. 指向含有对话框模板模块实例句柄 |
|
lpTemplate |
1. 此参数或是指向一个以 '\0' 结尾的字符串指针,该字符串指定对话框模板名,或是指定对话框模板的资源标识符的一个整型值 |
|
hWndParent |
指向对话框的父窗口句柄 |
|
lpDialogFunc |
指向对话框应用程序的指针。有关更多的对话框应用程序的指针,参见 DialogProc 函数 |
返回值:
1. 如果函数调用成功,则返回值为指向对话框的句柄;
2. 如果函数调用失败,则返回值为 NULL。若想获得更多的扩展错误信息,可调用 GetLastError 函数。
3. 通常的来说函数调用失败的原因有以下几个:
· 一个无效的参数值
· 系统类被其他模块注册了
· 截获窗体消息的钩子(WH_CBT)已经被安装,并返回一个失败的代码
· 对话框模板中的控件没有全部注册,或者父窗口在处理 WM_CREATE 消息或 WM_NCCREATE 消息过程中失败
备注:
1. CreateDialog 函数用 CreateWindowEx 函数来创建对话框。然后 CreateDialog 函数把一个 WM_INITDIALOG 消息(如果模板指定 DS_SETFONT 或 DS_SHELLFONT 类型,则加上一个 WM_SETFONT 消息)发送到对话框应用程序。
如果模板指定 WS_VISIBLE 风格,则函数显示对话框。最后 CreateDlalog 函数返回指向对话框的窗口句柄。
2. CreateDialog 函数返回之后,应用程序通过 ShowWindow 函数显示对话框(如果还没有显示)。应用程序通过DestroyWindow 函数来清除对话框。
3. 为了支持键盘快捷键操作和兼容其他对话框函数,在对话框的消息循环代码中必须调用 IsDialogMessage 函数。
需求:
|
Minimum supported client |
Windows 2000 专业版 [仅桌面应用程序] |
|
Minimum supported server |
Windows 2000 服务器版 [仅桌面应用程序] |
|
Header |
Winuser.h (包含于 Windows.h) |
|
Library |
User32.lib |
|
DLL |
User32.dll |
|
Unicode and ANSI names |
CreateDialogW (Unicode) 和 CreateDialogA (ANSI) |




