要想使用全局热键的话,需要用到两个函数:
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
- <strong>#define ONMYKEY 0x00001</strong>
2.在初始化函数中注册
- BOOL CMainDlg::OnInitDialog()
- {
- ...
- <strong>RegisterHotKey(GetSafeHwnd(), F10, NULL, VK_F10);</strong>
- ...
- }
3.为其想响应热键的界面添加响应热键消息函数
- void CMainDlg::OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2)
- {
- <strong>MessageBox(_T("你按下了F10键"));</strong>
- CDialogEx::OnHotKey(nHotKeyId, nKey1, nKey2);
- }