要想使用全局热键的话,需要用到两个函数:
BOOL WINAPI RegisterHotKey(
__in_opt HWND hWnd,
__in int id,
__in UINT fsModifiers,
__in UINT vk
);
afx_msg void OnHotKey(
UINT nHotKeyId,
UINT nKey1,
UINT nKey2
);
1.首先在想使用热键的头文件中自定义一个消息ID
#define ONMYKEY 0x00001
2.在初始化函数中注册
BOOL CMainDlg::OnInitDialog()
{
...
RegisterHotKey(GetSafeHwnd(), F10, NULL, VK_F10);
...
}
3.为其想响应热键的界面添加响应热键消息函数
void CMainDlg::OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2)
{
MessageBox(_T("你按下了F10键"));
CDialogEx::OnHotKey(nHotKeyId, nKey1, nKey2);
}