### 函数功能

该宏根据对话框模板资源创建一个模态的对话框。DialogBOX函数直到指定的回调函数通过调用EndDialog函数中止模态的对话框才能返回控制。该宏使用DialogBoxParam函数。

### 函数原型

int DialogBox(HINSTANCE hlnstance,LPCTSTRIpTemplate,HWND hWndParent,DLGPROC IpDialogFunc);

### 参数

hlnstance：标识一个模块的事例该模块的可执行文件含有对话框模板。
IpTemplate：标识对话框模板。此参数可以是指向一个以NULL结尾的字符串的指针，该字符串指定对话框模板名，或是指定对话框模板的资源标识符中的一个整型值。如果此参数指定了一个资源标识符则它的高位字一定为零，且低位字一定含有标识符。一定用MAKEINTRESOURDE宏指令创建此值。
hWndParent：指定拥有对话框的窗口。
IpDialogFunc：指向对话框过程的指针。有关更详细的关于对话框过程的信息,请参见DialogProc。

### 返回值

如果函数调用成功，则返回值为在对函数EndDialog的调用中的nResult参数．该函数用于中止对话框。如果函数调用失败，则返回值为C1。若想获得更多的错误信息，请调用GetLastError函数。
备注：DialOgBox宏用CreateWindowEx函数创建对话框。DialogBox函数然后把一个WM_INITDIALOG消息(和一个WM-SETFONT消息，如果模板指定DS_SETFONT类型）传递到对话框过程。不管模板是否指定WS_VISIBLE类型，函数显示对话框，并且使拥有该对话框的窗口（也称属主窗口）失效，且为对话框启动它本身的消息循环来检索和传递消息。
当对话框应用程序调用EndDialog函数时，DialogBox函数清除对话框户止消息循环,使属主窗口生效（如果以前有效），且返回函数EndDialog调用中的nReSUlt参数。
Windows 95和以后版本：系统可支持每个对话框模板中最多255个控制。为把大于255个的控制放入对话框，需要在WM_INITDIALOG消息处理器中创建控制，而不是把他们放入模板中。
Windows CE:lpTemplateName参数指向的对话框模板中DLGTEMPLATE结构并不支持所有的类型。

### 速查

Windows NT：3.1及以上版本；Windows：95及以上版本；Windows CE：1.0及以上版本；头文件：winuser.h；库文件:user32.lib Unicode：在Windows NT上实现为Unicode和ANSI两种版本。