MFC 对话框程序的键盘事件响应方法及与按钮事件的整合

来源:互联网 发布:js date函数 编辑:程序博客网 时间:2024/05/16 23:44

基于对话框的MFC程序并不能直接响应键盘事件,而如果我们想要将某个按钮单击事件与某个键盘按键关联起来,那么重载PreTranslateMessage(MSG* pMsg)这个虚函数是最好的方法。

首先,添加这个虚函数,在CxxxDlg类上单击右键选择Add Virtual Function,从列表中选择PreTranslateMessage(MSG* pMsg)这个函数,添加即可。

函数体可以这么写:

BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg) {// TODO: Add your specialized code here and/or call the base classint myID;CWnd* pWnd=WindowFromPoint(pMsg->pt); myID=pWnd->GetDlgCtrlID();  if(pMsg->message==WM_LBUTTONUP||pMsg->message==WM_KEYDOWN)   {  bool event1=myID==IDC_N1||pMsg->wParam==49;if(event1){//事件处理代码}return CDialog::PreTranslateMessage(pMsg);}//上述代码即可将ID为IDC_N1的button控件单机事件与键盘上的1键关联起来,共用一个消息响应事件。


                                             
0 0
原创粉丝点击