WM_SETHOTKEY消息

发送到窗口以将热键与窗口相关联。 当用户按下热键时,系统将激活窗口。

#define WM_SETHOTKEY                    0x0032

参数

wParam

低序字指定要与窗口关联的虚拟键代码。

高序字可以是来自 CommCtrl.h 的以下一个或多个值。

wParam 设置为 NULL 会删除与窗口关联的热键。

含义
HOTKEYF_ALT
0x04
Alt 键
HOTKEYF_CONTROL
0x02
CTRL 键
HOTKEYF_EXT
0x08
扩展键
HOTKEYF_SHIFT
0x01
SHIFT 键

lParam

未使用此参数。

返回值

返回值为下列值之一。

返回值 说明
-1
函数不成功;热键无效。
0
函数不成功;窗口无效。
1
函数成功,并且没有其他窗口具有相同的热键。
2
函数成功,但另一个窗口已具有相同的热键。

备注

热键不能与子窗口相关联。

VK_ESCAPEVK_SPACEVK_TAB 是无效的热键。

当用户按下热键时,系统会生成一条 WM_SYSCOMMAND 消息, 其中 wParam 等于 SC_HOTKEYlParam 等于窗口的句柄。 如果此消息传递给 DefWindowProc,则系统会将窗口的最后一个活动弹出窗口 (如果它) 存在,则窗口本身 ((如果没有弹出窗口) 到前台)。

一个窗口只能有一个热键。 如果窗口已有与其关联的热键,则新的热键将替换旧热键。 如果多个窗口具有相同的热键,则由热键激活的窗口是随机的。

这些热键与 RegisterHotKey 设置的热键无关。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Winuser.h (包括 Windows.h)

另请参阅

引用

RegisterHotKey

WM_GETHOTKEY

WM_SYSCOMMAND

概念性

键盘输入