我在MFC中处理HotKeys。我注册HotKey的方式是调用RegisterHotKey()
并在标头中声明OnHotKey
函数。最后,我手动将该功能添加到我的消息地图
BEGIN_MESSAGE_MAP(CforkDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON_INIT, &CforkDlg::OnBnClickedButtonInit)
ON_BN_CLICKED(IDC_BTN_SPEED, &CforkDlg::OnBnClickedBtnSpeed)
ON_BN_CLICKED(IDC_CHK_AUTOPICKUP, &CforkDlg::OnBnClickedChkAutopickup)
ON_MESSAGE(WM_HOTKEY, OnHotKey)//Hot Key handle function
END_MESSAGE_MAP()
但是,OnHotKey函数只接受2个参数。一个是修饰符,另一个是虚拟键码。有办法获得HotKey ID吗?
答案 0 :(得分:2)
您需要在消息地图中使用此功能:
ON_WM_HOTKEY()
这个MFC功能:
afx_msg void OnHotKey(
UINT nHotKeyId,
UINT nKey1,
UINT nKey2
);
确保删除ON_MESSAGE(WM_HOTKEY, OnHotKey)
和其他OnHotKey
声明和定义。