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

定义 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-注册热键

最新文章

  1. 【GitHub Desktop】MacOS和Win下配置及简单的使用
  2. (十)WebGIS中地理坐标与屏幕坐标间的转换原理
  3. git删除push到远程服务器的commit
  4. 微信公众平台开发详细步骤与java代码
  5. Linux/Unix shell sql 之间传递变量
  6. HDU 4793 Collision (2013长沙现场赛,简单计算几何)
  7. C - A Simple Problem with Integers - poj 3468(区间更新)
  8. 四个常用.NET的SqlHelper的方法
  9. poj 2184 Cow Exhibition(背包变形)
  10. .NET/ASP.NETMVC Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(一)
  11. blob的存储与读取
  12. 《深入理解Java虚拟机》学习笔记之类加载
  13. Java在linux下调用C/C++生成的so文件
  14. AVL平衡二叉树
  15. 读取Easy UI的DATa grid里面的所有数据
  16. es6 export 和export default的区别
  17. 多层级sql查询
  18. 修改MySQL中的数据
  19. hdu1829A Bug's Life(种类并查集)
  20. Android Studio多Module使用 aar 依赖包 丢包解决

热门文章

  1. 几道51nod上据说是提高组难度的dp题
  2. NTT数论变换
  3. docker快速安装elasticsearch
  4. error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.【转载】
  5. Api:目录
  6. 关于idea中,web项目启动tomcat,访问资源报错404
  7. Python:获取当前py的文件名
  8. iphone11系统输入框的光标位置不正常
  9. java_函数式编程
  10. Docker学习の更改Docker的目录