应用程序定义的回调函数与 CreateDialog 和 DialogBox 函数系列一起使用。 它处理发送到模式或无模式对话框的消息。 DLGPROC 类型定义指向此回调函数的指针。 DialogProc 是应用程序定义的函数名称的占位符。
Syntax
DLGPROC Dlgproc;
INT_PTR Dlgproc(
HWND unnamedParam1,
UINT unnamedParam2,
WPARAM unnamedParam3,
LPARAM unnamedParam4
)
{...}
参数
unnamedParam1
类型:HWND
对话框的句柄。 此参数通常命名为 hWnd。
unnamedParam2
类型: UINT
消息。 此参数通常命名 为 uMsg。
unnamedParam3
类型: WPARAM
其他特定于消息的信息。 此参数通常命名 为 wParam。
unnamedParam4
类型: LPARAM
其他特定于消息的信息。 此参数通常命名为 lParam。
返回值
类型: INT_PTR
通常,如果对话框过程处理了消息,则对话框过程应返回 TRUE ;如果消息未处理,则返回 FALSE 。 如果对话框过程返回 FALSE,对话管理器将执行默认对话作以响应消息。
如果对话框过程处理需要特定返回值的消息,则对话框过程应在返回 TRUE 之前立即调用 SetWindowLong(hwndDlg、DWL_MSGRESULT、lResult)来设置所需的返回值。 请注意,在返回 TRUE 之前,必须立即调用 SetWindowLong;这样做可能会导致嵌套对话框消息覆盖DWL_MSGRESULT值。
以下消息是上述常规规则的例外。 有关返回值的语义的详细信息,请参阅特定消息的文档。
- WM_CHARTOITEM
- WM_COMPAREITEM
- WM_CTLCOLORBTN
- WM_CTLCOLORDLG
- WM_CTLCOLOREDIT
- WM_CTLCOLORLISTBOX
- WM_CTLCOLORSCROLLBAR
- WM_CTLCOLORSTATIC
- WM_INITDIALOG
- WM_QUERYDRAGICON
- WM_VKEYTOITEM
注解
注释
参数在标头中定义,没有名称: typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);。 因此,语法块将它们 unnamedParam1 - unnamedParam4列为 。 可以在应用中命名这些参数。 但是,它们通常按参数说明中所示命名。
仅当对对话框使用对话框类时,才应使用对话框过程。 这是默认类,在对话框模板中未指定显式类时使用。 尽管对话框过程类似于窗口过程,但它不得调用 DefWindowProc 函数来处理不需要的消息。 不需要的消息由对话框窗口过程在内部处理。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
| 支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
| 目标平台 | Windows操作系统 |
| Header | winuser.h (包括 Windows.h) |
另请参阅
概念
引用