应用程序向窗口发送WM_SETHOTKEY消息以将热键与窗口相关联。当用户按下热键时,系统激活窗口。
WM_SETHOTKEY
wParam = (WPARAM) MAKEWORD(vkey, modifiers) //虚拟键代码和修改器的热键
lParam = 0; // 不曾用过;必须为零
参数
【v键】
价值【wParam中】.指定与窗口关联的热键的虚拟键代码和修饰符。虚拟键代码在参数的低字节中,修饰符标志位在高字节中。将此参数设置为NULL将删除与窗口相关联的热键。修饰符字节可以是以下标志的组合:
值 | 含义 |
HOTKEYF_ALT | ALT键 |
HOTKEYF_CONTROL | CTRL键 |
HOTKEYF_EXT | 扩展密钥 |
HOTKEYF_SHIFT | SHIFT键 |
返回值
返回值是以下之一:
值 | 含义 |
-1 | 该函数不成功__热键无效。 |
..0 | 该函数不成功__该窗口无效。 |
..1 | 该函数成功,没有其他窗口具有相同的热键。 |
..2 | 该函数成功,但另一个窗口已经有相同的热键。 |
备注
一个热键不能与子窗口相关联。
VK_ESCAPE,VK_SPACE和VK_TAB都是无效的热键。
当用户按下热键时,系统会生成一个等于SC_HOTKEY的【wParam中】的WM_SYSCOMMAND消息。
一个窗口只能有一个热键。如果窗口已经有一个与之关联的热键,则新的热键将替换旧热键。如果多个窗口具有相同的热键,则由热键激活的窗口是随机的。
这些热键与RegisterHotKey设置的热键无关。
也可以看看