MFC注册热键
2024-10-07 21:40:09
注册热键. 当用户点击注册的快捷键时,做出相应的响应.
定义 ALT+M键为测量按钮响应函数:
- 头文件中定义:
#define ID_HOTKEY1 10001
- 在初始化函数中加入注册热键函数:
if(false == RegisterHotKey(this->GetSafeHwnd(),ID_HOTKEY1,MOD_ALT,'M') ) //VK_F1:F1响应
{
AfxMessageBox("遥控器注册热键失败!");
}
- 重写对话框中响应热键的消息: 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)
- 在析构函数中编写解除热键响应
UnregisterHotKey(this->GetSafeHwnd(), ID_HOTKEY1);
这里,我是手动注册的WM_HOTKEY消息响应函数,所以传参和不一样. 如果你是使用类向导创建消息响应,那么你的响应函数为:
void CMFC_TESTDlg::OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2)
{
//nHotKeyId 和 ID_HOTKEY1 相对应
//nKey2 和 'M'对应
//多个对应是为了响应你可能需要多个组合快捷键
}
另外可参考下面这篇文章:
最新文章
- 【GitHub Desktop】MacOS和Win下配置及简单的使用
- (十)WebGIS中地理坐标与屏幕坐标间的转换原理
- git删除push到远程服务器的commit
- 微信公众平台开发详细步骤与java代码
- Linux/Unix shell sql 之间传递变量
- HDU 4793 Collision (2013长沙现场赛,简单计算几何)
- C - A Simple Problem with Integers - poj 3468(区间更新)
- 四个常用.NET的SqlHelper的方法
- poj 2184 Cow Exhibition(背包变形)
- .NET/ASP.NETMVC Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(一)
- blob的存储与读取
- 《深入理解Java虚拟机》学习笔记之类加载
- Java在linux下调用C/C++生成的so文件
- AVL平衡二叉树
- 读取Easy UI的DATa grid里面的所有数据
- es6 export 和export default的区别
- 多层级sql查询
- 修改MySQL中的数据
- hdu1829A Bug's Life(种类并查集)
- Android Studio多Module使用 aar 依赖包 丢包解决
热门文章
- 几道51nod上据说是提高组难度的dp题
- NTT数论变换
- docker快速安装elasticsearch
- error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.【转载】
- Api:目录
- 关于idea中,web项目启动tomcat,访问资源报错404
- Python:获取当前py的文件名
- iphone11系统输入框的光标位置不正常
- java_函数式编程
- Docker学习の更改Docker的目录