IsDialogMessageA 函数 (winuser.h)

确定消息是否适用于指定的对话框,如果是,则处理该消息。

语法

BOOL IsDialogMessageA(
  [in] HWND  hDlg,
  [in] LPMSG lpMsg
);

参数

[in] hDlg

类型:HWND

对话框的句柄。

[in] lpMsg

类型:LPMSG

指向包含要检查的消息的 MSG 结构的指针。

返回值

类型:BOOL

如果消息已处理,则返回值为非零。

如果未处理消息,则返回值为零。

言论

尽管 IsDialogMessage 函数适用于无模式对话框,但你可以将其与包含控件的任何窗口一起使用,使窗口能够提供与对话框中使用的键盘选择相同。

IsDialogMessage 处理消息时,它会检查键盘消息并将其转换为相应对话框的选择。 例如,按 Tab 键时,选择下一个控件或控件组,按下向下键时,选择组中的下一个控件。

由于 IsDialogMessage 函数执行所有必需的消息翻译和调度,因此 IsDialogMessage 处理的消息不得传递给 TranslateMessageDispatchMessage 函数。

IsDialogMessageWM_GETDLGCODE 消息发送到对话框过程,以确定应处理哪些键。

IsDialogMessage 可以将 DM_GETDEFIDDM_SETDEFID 消息发送到窗口。 这些消息在 Winuser.h 头文件中定义为 WM_USERWM_USER + 1,因此应用程序定义的消息可能具有相同值。

注意

winuser.h 标头将 IsDialogMessage 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)
User32.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-dialogbox-l1-1-3(在 Windows 10 版本 10.0.14393 中引入)

另请参阅

概念

DM_GETDEFID

DM_SETDEFID

对话框

DispatchMessage

MSG

参考

TranslateMessage

WM_GETDLGCODE

WM_USER