我正在处理 MFC 中的热键。我注册 HotKey 的方法是调用 RegisterHotKey()
并在 header 中声明一个 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个参数。一个是修饰符,另一个是虚拟键码。有没有办法获取热键 ID?
最佳答案
你在消息映射中需要这个:
ON_WM_HOTKEY()
还有这个 MFC 函数:
afx_msg void OnHotKey(
UINT nHotKeyId,
UINT nKey1,
UINT nKey2
);
确保删除 ON_MESSAGE(WM_HOTKEY, OnHotKey)
和其他 OnHotKey
声明和定义。
关于c++ - 有没有办法在 OnHotKey 函数中获取热键 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34107279/