首页 > 其他 > 详细

在MFC对话框程序中使用加速键

时间:2014-08-05 22:44:20      阅读:467      评论:0      收藏:0      [点我收藏+]

新建一个基于对话框的工程,添加一个按钮,修改按钮ID,这里为ID_BTN_OPENFILE,为按钮添加消息响应事件,这里我打开文件保存对话框:

void CAccelDlg::OnBtnOpenfile() 
{
	// TODO: Add your control notification handler code here
	CFileDialog dlg (TRUE);
	dlg.DoModal ();	
}
为工程添加一个加速键资源,添加一条,注意ID要和按钮的ID相同,只有这样才能产生关联

bubuko.com,布布扣

为主对话框类添加一个加速键变量成员:

HACCEL m_hAccel;
在对话框的OnInitDialog初始化函数中加载加速键资源

  // 加载加速键资源
  m_hAccel = LoadAccelerators (AfxGetInstanceHandle (), MAKEINTRESOURCE(IDR_ACCELERATOR1)); 

然而对话框要处理加速键需要处理按键消息,翻译加速键,添加虚函数:PreTranslageMessage,在函数里添加对加速键的翻译函数

TranslateAccelerator (m_hWnd, m_hAccel, pMsg);

Ok, 到这里就可按 Ctrl+o 键达到和点击“打开”按钮一样的效果:

bubuko.com,布布扣

在MFC对话框程序中使用加速键,布布扣,bubuko.com

在MFC对话框程序中使用加速键

原文:http://blog.csdn.net/eldn__/article/details/38390051

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!