zoukankan      html  css  js  c++  java
  • MFC注册热键

    注册热键. 当用户点击注册的快捷键时,做出相应的响应.

    定义 ALT+M键为测量按钮响应函数:

    1. 头文件中定义:
    #define ID_HOTKEY1    10001 
    
    1. 在初始化函数中加入注册热键函数:
        if(false == RegisterHotKey(this->GetSafeHwnd(),ID_HOTKEY1,MOD_ALT,'M')  )    //VK_F1:F1响应
        {
            AfxMessageBox("遥控器注册热键失败!");
        }  
    
    1. 重写对话框中响应热键的消息: WM_HOTKEY
    LRESULT AutoTrackerDlg::OnHotKey( WPARAM wParam,LPARAM lParam )
    {
        UINT Mod = (UINT) LOWORD(lParam); // key-modifier flags 
        UINT uVirtKey = (UINT) HIWORD(lParam); // virtual-key code 
        //判断响应了什么热键
        if (MOD_ALT == Mod && 'M' == uVirtKey)
        {
            //AfxMessageBox(_T("你按下了热键")); 
            OnBnClickedButtonMeasure();
        }
    
        return 0; 
    }  
    

    其中除了去重载消息外,还可以自己数响应WM_HOTKEY按钮,在BEGIN_MESSAGE_MAP中加入:

    ON_MESSAGE(WM_HOTKEY,OnHotKey)  
    
    1. 在析构函数中编写解除热键响应
     UnregisterHotKey(this->GetSafeHwnd(), ID_HOTKEY1);
    

    这里,我是手动注册的WM_HOTKEY消息响应函数,所以传参和不一样. 如果你是使用类向导创建消息响应,那么你的响应函数为:

    void CMFC_TESTDlg::OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2)
    {
        //nHotKeyId 和 ID_HOTKEY1 相对应 
        //nKey2 和 'M'对应
        //多个对应是为了响应你可能需要多个组合快捷键
    }
    
    
    

    另外可参考下面这篇文章:

    MFC-注册热键

  • 相关阅读:
    (三)3-5 Python生成式和生成器
    (三)3-4 Python的高阶函数和匿名函数
    Linux下安装Python3
    Python math函数库
    今日头条as,cp,_signature参数破解
    使用scrapy实现分布式爬虫
    scrapy框架持久化存储
    Python中使用rsa加密
    使用Python进行微博登录
    WebDriverWait 显示等待
  • 原文地址:https://www.cnblogs.com/skyhuangdan/p/5522819.html
Copyright © 2011-2022 走看看