原文链接 -> 传送门
函数功能:
DialogProc 函数是一个应用程序定义的回调函数,可与 CreateDialog 和 DialogBox 等对话框类函数一起使用的回调函数。它处理发送到一个模态的或非模态对话框的消息。
DLGPROC 类型被定义为一个指向此回调函数的指针。DialogProc 函数是应用程序定义函数名的一个占位符。
API 函数原型:
注释:_In_ 说明该参数是输入的。
INT_PTR CALLBACK DialogProc( _In_ HWND hwndDlg, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam );
参数解析:
|
参数 |
含义 |
|
hwndDlg |
指向对话框句柄 |
|
uMsg |
指定消息 |
|
wParam |
指定消息的附加信息 |
|
lParam |
指定消息的附加信息 |
返回值:
1. 通常的来说,对话框过程应当返回 TRUE 以表明消息已经被处理,反之则返回 FALSE。如果对话框过程返回 FALSE,对话框管理器使用默认对话框操作来响应消息。
2. 如果需要一个特定的返回值,需通过调用 SetWindowLong(hwndDlg, DWL_MSGRESULT, lResult) 函数设置该返回值。
注意:您必须在回调函数返回 TRUE 之前的上一步调用 SetWindowLong 函数。如果太早调用函数会导致 DWL_MSGRESULT 值被内嵌对话框消息覆盖。
3. 以下是异常消息返回值,有关详细信息,请参考对应消息文档:
· WM_CHARTOITEM
· WM_COMPAREITEM
· WM_CTLCOLORBTN
· WM_CTLCOLORDLG
· WM_CTLCOLOREDIT
· WM_CTLCOLORLISTBOX
· WM_CTLCOLORSCROLLBAR
· WM_CTLCOLORSTATIC
· WM_INITDIALOG
· WM_QUERYDRAGICON
· WM_VKEYTOITEM
备注:
只有在对话框中使用对话框类(这是默认的类,并且在对话框模板中没有指定明确的类时才使用)时,才使用对话框处理程序。尽管对话框应用程序同 Windows 应用程序类似,但它不能调用 DefWindowProc 函数处理不需要的消息。不需要的消息通过对话框窗口应用程序内部处理。
需求:
|
Minimum supported client |
Windows 2000 专业版 [仅桌面应用程序] |
|
Minimum supported server |
Windows 2000 服务器版 [仅桌面应用程序] |
|
Header |
Winuser.h (包含于 Windows.h) |




