MFC学习之路01 快捷键的生成方法
2015-07-16 17:14
274 查看
快捷键一般都是使用在CMenu中,所以有的Menu创建过程(此处省略)。
1、切换到资源视图->添加资源->Acclerator
2、在ID中选择需要添加快捷键的控件ID,修饰符中选择Ctrl等,键中选择使用的快捷键,类型默认。快捷键的键值可查询,每一个键对应的键值在下面的网页中有给出:
http://blog.csdn.net/kathywind/article/details/5979029。
在表中找到相应的键值,添加加进去。
添加完成了Acclerator资源后,需要将资源添加到类中去。
3、在xxxxDlg.h头文件中添加一个快捷键资源的成员变量:
4、需要在xxxDlg.cpp中OnInitDialog中加入:
5 然后需要重载PreTranslateMessage函数,实现对快捷键功能。重载代码如下:
我参考的地址:
http://zhouzhenren163.blog.163.com/blog/static/6549928120125582629996/
另一种消息映射的机制,由于时间关系没有尝试。
就直接copy 过来了:
在隐藏按钮所在的对话框所对应的函数如XXXDlg.h文件中添加如下:
然后在其XXXDlg.cpp中添加消息映射,如下:
然后再实现这三个函数如下:
1、切换到资源视图->添加资源->Acclerator
2、在ID中选择需要添加快捷键的控件ID,修饰符中选择Ctrl等,键中选择使用的快捷键,类型默认。快捷键的键值可查询,每一个键对应的键值在下面的网页中有给出:
http://blog.csdn.net/kathywind/article/details/5979029。
在表中找到相应的键值,添加加进去。
添加完成了Acclerator资源后,需要将资源添加到类中去。
3、在xxxxDlg.h头文件中添加一个快捷键资源的成员变量:
HACCEL m_hAccel;
4、需要在xxxDlg.cpp中OnInitDialog中加入:
m_hAccel=::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1)); //IDR_ACCELERATOR1就是刚才的加速键资源ID;
5 然后需要重载PreTranslateMessage函数,实现对快捷键功能。重载代码如下:
BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg) { if (m_hAccel) { if (::TranslateAccelerator(m_hWnd, m_hAccel, pMsg)) { return(TRUE); } } return CDialog::PreTranslateMessage(pMsg); }
我参考的地址:
http://zhouzhenren163.blog.163.com/blog/static/6549928120125582629996/
另一种消息映射的机制,由于时间关系没有尝试。
就直接copy 过来了:
在隐藏按钮所在的对话框所对应的函数如XXXDlg.h文件中添加如下:
afx_msg LRESULT OnHotKey(WPARAM wParam, LPARAM lParam);
然后在其XXXDlg.cpp中添加消息映射,如下:
ON_MESSAGE(WM_HOTKEY,OnHotKey) ON_MESSAGE(WM_CREATE,OnCreate) ON_MESSAGE(WM_DESTROY,OnDestroy)
然后再实现这三个函数如下:
/////////// 向系统注册热键 void CBackupDlg::OnCreate() { RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_SHIFT,'A'); RegisterHotKey(m_hWnd,1002,MOD_CONTROL|MOD_SHIFT,'a'); }///////
////////// 程序运行完毕后解除热键 void CBackupDlg::OnDestroy() { UnregisterHotKey(m_hWnd,1001); UnregisterHotKey(m_hWnd,1002); }////
///////// 处理热键 LRESULT CBackupDlg::OnHotKey(WPARAM wParam,LPARAM lParam) { if(wParam==1001||wParam==1002) { CWnd::SetForegroundWindow();//使得被激活窗口出现在前景 //用户在此添加代码处理事务,如下, OnBtnReset(); //这里就是隐藏按钮所处理的函数; } return 0; }
相关文章推荐
- 在 Linux 中加速工作的键盘快捷键
- winform绑定快捷键的方法
- CS 1.5 键盘基本操作快捷键
- C#实现快捷键的几种常用方法汇总
- Visual C++中MFC消息的分类
- MFC中Radio Button的用法详解
- MFC创建右键弹出菜单的方法
- MFC中动态创建控件以及事件响应实现方法
- C++ 关于MFC多线程编程的注意事项
- MFC程序对文件的处理方法
- MFC自定义消息的实现方法
- MFC之ComboBox控件用法实例教程
- zend studio 快捷键收集
- js实现屏蔽默认快捷键调用自定义事件示例
- MFC绘制不规则窗体的方法
- 几个有用的unix命令快捷键整理
- Dreamweaver快捷键大全
- VisualStudio 2008中常用快捷键
- PHP和JavaScrip分别获取关联数组的键值示例代码
- android开发中常用的Eclipse快捷键详细整理