c++ - 有没有办法在 OnHotKey 函数中获取热键 ID?

标签 c++ visual-c++ mfc

我正在处理 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
);

另见 CWnd::OnHotKey

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

关于c++ - 有没有办法在 OnHotKey 函数中获取热键 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34107279/

相关文章:

c++ - 在 OpenGL/SDL2 教程中,纹理采样坐标似乎按 2 倍缩放

具有奇怪范围解析运算符的 C++ typedef

c++ - 如何终止由 CreateProcess() 创建的进程?

c++ - 从子类 : gcc vs msvc 访问 protected 成员

c++ - MFC PreCreateWindow 创建一个填满屏幕但任务栏除外的窗口

c++ - 免费CArchive实现?

c++ - 默认情况下,在结构/类中声明的指针是否初始化为 nullptr?

c++ - CGAL Alpha_shape_2 提取边界顶点

c++ - 无法连接到 QML 仿真层(QML Puppet)

c++ - 在 Visual Studio 2008 Express 中链接 libcURL