MFC中使用快捷键Accelerator
参考:
首先,新建一个快捷键资源。如图
此处的,IDC_BUTTON1是一个按钮的ID,即此快捷键与该按钮关联。
1. 声明成员变量 HACCEL hAccel;
2. 在OnInitDialog函数中 LoadAccelerators 加载快捷键资源
hAccel = ::LoadAccelerators(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDR_ACCELERATOR1));
3. 重写虚函数 PreTranslateMessage, 添加
// if (::TranslateAccelerator(GetSafeHwnd(), hAccel, pMsg))
// return true;
BOOL CAcceleratorDlg::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if (::TranslateAccelerator(GetSafeHwnd(), hAccel, pMsg)) return true; return CDialogEx::PreTranslateMessage(pMsg); }
4. 添加Button1的点击响应函数即可。
常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。