一、实现全局热键主要使用以下API(详情查看MSDN):
- 获取热键标识:GlobalAddAtom
- 注册热键:RegisterHotKey
- 注销热键:UnregisterHotKey
- 释放热键标识:GlobalDeleteAtom
二、热键注册/注销步骤
1、ATOM hotKeyId = GlobalAddAtom( _T("myHotKeyId") ) - 0xc000;
// 拿到一个唯一的热键标识 hotKeyId
2、RegisterHotKey(hwnd, hotKeyId, MOD_XXX, VK_XXX);
// 注册全局热键
// hwnd:本程序窗口句柄
// hotKeyId:第1步中获得的热键标识
// MOD_XXX:组合键的标识,例如Ctrl键为:MOD_CONTROL, Shift键为:MOD_SHIFT
// VK_XXX:键盘按键标识,例如F1键为:VK_F1, A键为'A'
3、UnregisterHotKey(hwnd, hotKeyId);
// 注销全局热键
// hwnd:本程序窗口句柄
// hotKeyId:第1步中获得的热键标识
4、GlobalDeleteAtom(hotKeyId);
// 释放掉热键标识 hotKeyId
三、成功注册后的热键使用方法
在Windows程序的消息处理函数中处理WM_HOTKEY消息
// 例如在DUILIB的窗体程序里代码如下:
void MainFrame::RegisterHotKey() {
m_HotKeyId1 = GlobalAddAtomW( _T(&#