有没有办法在OnHotKey函数中获取HotKey ID?

时间:2015-12-05 15:36:47

标签: c++ visual-c++ mfc

我在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吗?

1 个答案:

答案 0 :(得分:2)

您需要在消息地图中使用此功能:

ON_WM_HOTKEY()

这个MFC功能:

afx_msg void OnHotKey(
    UINT nHotKeyId, 
    UINT nKey1, 
    UINT nKey2
);

另见CWnd::OnHotKey

确保删除ON_MESSAGE(WM_HOTKEY, OnHotKey)和其他OnHotKey声明和定义。