平台SDK: Windows 用户接口

DialogProc

DialogProc函数是与CreateDialog和DialogBox系列函数一起使用的应用程序定义的回调函数。 它处理发送到模态或非模态对话框的消息。 DLGPROC类型定义了一个指向这个回调函数的指针。 DialogProc是应用程序定义的函数名称的占位符。

INT_PTR CALLBACK DialogProc(
  HWND hwndDlg,  // 对话框句柄
  UINT uMsg,     // 消息
  WPARAM wParam, // 第一个消息参数
  LPARAM lParam  // 第二个消息参数
);

参数

  • hwndDlg

  • [in] 对话框句柄。

  • uMsg

  • [in] 指定消息。

    wParam

  • [in] 指定其他消息特定的信息。

  • lParam

  • [in] 指定其他消息特定的信息。

返回值

通常,对话框过程在处理消息时应返回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

备注

只有在对话框中使用对话框类时,才应使用对话框过程。 这是默认类,在对话框模板中未指定明确的类时使用。 尽管对话框过程类似于窗口过程,但它不得调用DefWindowProc函数来处理不需要的消息。 不需要的消息由对话框窗口过程在内部处理。

要求

  Windows NT/2000/XP: 包含在Windows NT 3.1和更高版本中。

  Windows 95/98/Me: 包含在Windows 95和更高版本中。

  头文件: 声明于 Winuser.h; 包含于 Windows.h.