原文链接 -> 传送门
函数功能:
IsDialogMessage 函数判断一个消息是否指定给对话框,如果是,则处理消息。
API 函数原型:
注释:_In_ 说明该参数是输入的。
BOOL WINAPI IsDialogMessage( _In_ HWND hDlg, _In_ LPMSG lpMsg );
参数解析:
|
参数 |
含义 |
|
hDlg |
指向对话框句柄 |
|
lpMsg |
指向一个含有将被检测的消息的 MSG 结构 |
返回值:
1 如果消息被处理,则返回值为非 0;
2 如果消息没有被处理,则返回值为 0。
备注:
1. 尽管 IsDialogMessage 函数是为无模态对话框而扩展的,但您可以在任何一个含有控件的窗口使用它,并且允许窗口在话框中使用相同的键盘选择键。
2. 当 IsDialogMessage 函数处理一个消息时,它检测键盘信息并把它们转变成对响应对话框的选择命令。例如当按下 Tab 按键时,选择下一个控件或控件组,当按下下箭头时选择控件组的下一个控件。
3. 因为 IsDialogMessage 函数要执行消息所有必要的转化和传送,被 IsDialogMessage 函数处理过的消息不能再传送给TranslateMessage 函数或 DispatchMessage 函数处理。
4 IsDialogMessage 函数把 WM_GETDLGCODE 消息发送到对话框应用程序,决定应该处理哪个键。
5 IsDialogMessage 函数把 DM_GETDEFID 和 DM_SETDEFID 消息发送到窗口。这些消息在 Winuser.h 头文件中定义为 WM_USER 和 WM_USER + 1,所以应用程序定义有一样值消息可能会发生冲突。
需求:
|
Minimum supported client |
Windows 2000 专业版 [仅桌面应用程序] |
|
Minimum supported server |
Windows 2000 服务器版 [仅桌面应用程序] |
|
Header |
Winuser.h (包含于 Windows.h) |
|
Library |
User32.lib |
|
DLL |
User32.dll |
|
Unicode and ANSI names |
IsDialogMessageW (Unicode) 和 IsDialogMessageA (ANSI) |




