RegisterHotKey函数定义当前线程的热键。
BOOL RegisterHotKey(
HWND 【的hWnd】, | //窗口接收热键通知 |
INT 【id】, | //热键标识符 |
UINT 【fsModifiers】, | //键修饰符标志 |
UINT 【vk】 | //虚拟键代码 |
); |
参数
【的hWnd】
标识将接收热键生成的WM_HOTKEY消息的窗口。如果此参数为NULL,WM_HOTKEY消息将发送到调用线程的消息队列,并且必须在消息循环中处理。
【id】
指定热键的标识符。调用线程中没有其他热键应该具有相同的标识符。应用程序必须指定一个范围为0x0000到0xBFFF的值。共享动态链接库(DLL)必须指定范围0xC000到0xFFFF(由GlobalAddAtom函数返回的范围)的值。为了避免与其他共享DLL定义的热键标识符冲突,DLL应使用GlobalAddAtom功能获取热键标识符。
【fsModifiers】
指定必须与由【nVirtKey】参数指定的键组合按键以生成WM_HOTKEY消息。【fsModifiers】参数可以是以下值的组合:
值 | 含义 |
MOD_ALT | 必须按住ALT键。 |
MOD_CONTROL | 必须按住CTRL键。 |
MOD_SHIFT | 必须按住SHIFT键。 |
【vk】
指定热键的虚拟键代码。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。
备注
当按下一个键时,系统会查找与所有线程热键的匹配。找到匹配后,系统将WM_HOTKEY消息发布到注册热键的线程的消息队列中。该消息被发布到队列的开头,以便通过消息循环的下一次迭代将其消除。
此函数无法将热键与另一个线程创建的窗口相关联。
RegisterHotKey如果为热键指定的按键已经被其他热键注册,则会失败。
如果由【的hWnd】参数标识的窗口已经注册了与【id】参数指定的相同标识符的热键,则【fsModifiers】和【vk】参数的新值将替换以前指定的这些参数值。
也可以看看