MFC程序怎么给按钮定义快捷键

你说的可能是给对话框上的按钮定义快捷键吧。

最好的办法就是在资源视图中建立快捷键表,并在对话框中加载快捷键表,就可以了。具体做法如下:

1、在资源视图建立快捷键表;

快捷键可以任意定义。

 

2、在对话框的***Dlg.h文件中定义快捷键表 

HACCEL m_hAccel;//加速键表

 

3、在OnInitDialog()函数中加载快捷键表 

m_hAccel=::LoadAccelerators(AfxGetResourceHandle(), m_lpszTemplateName);//可以是使用MAKEINTRESOURCE的整型ID

 

4、重载PreTranslateMessage函数。

BOOL CMoveFileDlg::PreTranslateMessage(MSG* pMsg) 

{

 //检查按键类的消息,从WM_ KEYFIRST 到 WM_KEYLAST

 if(WM_KEYFIRST<=pMsg->message &&

  pMsg->message<=WM_KEYLAST)

 {

  HACCEL hAccel=m_hAccel;

 

  if(hAccel &&   ::TranslateAccelerator(m_hWnd,hAccel,pMsg))

   return TRUE;

 }

 

 return CDialog::PreTranslateMessage(pMsg);

}

posted @ 2013-03-07 09:13  天涯海角路  阅读(489)  评论(0)    收藏  举报