RegisterHotKey

【勇芳软件工作室】汉化HomePreviousNext

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】参数的新值将替换以前指定的这些参数值。

也可以看看

GlobalAddAtom, UnregisterHotKey, WM_HOTKEY