DLGPROC 回调函数 (winuser.h)

应用程序定义的回调函数与 CreateDialogDialogBox 函数系列一起使用。 它处理发送到模式或无模式对话框的消息。 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 之前立即调用 SetWindowLonghwndDlgDWL_MSGRESULTlResult)来设置所需的返回值。 请注意,在返回 TRUE 之前,必须立即调用 SetWindowLong;这样做可能会导致嵌套对话框消息覆盖DWL_MSGRESULT值。

以下消息是上述常规规则的例外。 有关返回值的语义的详细信息,请参阅特定消息的文档。

注解

注释

参数在标头中定义,没有名称: 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)

另请参阅

概念

对话框

WM_INITDIALOG

引用

CreateDialog

CreateDialogIndirect

CreateDialogIndirectParam

CreateDialogParam

DefWindowProc

DialogBox

DialogBoxIndirect

DialogBoxIndirectParam

DialogBoxParam

SetFocus