首页 > 代码库 > 在MFC对话框程序中使用加速键
在MFC对话框程序中使用加速键
新建一个基于对话框的工程,添加一个按钮,修改按钮ID,这里为ID_BTN_OPENFILE,为按钮添加消息响应事件,这里我打开文件保存对话框:
void CAccelDlg::OnBtnOpenfile() { // TODO: Add your control notification handler code here CFileDialog dlg (TRUE); dlg.DoModal (); }为工程添加一个加速键资源,添加一条,注意ID要和按钮的ID相同,只有这样才能产生关联
为主对话框类添加一个加速键变量成员:
HACCEL m_hAccel;在对话框的OnInitDialog初始化函数中加载加速键资源
// 加载加速键资源 m_hAccel = LoadAccelerators (AfxGetInstanceHandle (), MAKEINTRESOURCE(IDR_ACCELERATOR1));
然而对话框要处理加速键需要处理按键消息,翻译加速键,添加虚函数:PreTranslageMessage,在函数里添加对加速键的翻译函数
TranslateAccelerator (m_hWnd, m_hAccel, pMsg);
Ok, 到这里就可按 Ctrl+o 键达到和点击“打开”按钮一样的效果:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。