对话框处理Enter,Esc键相应问题
在类视图里面选择你要实现的类,右键属性,在属性里面找到函数PreTranslateMessage,然后添加PreranslateMessage的消息函数,在PreTranslateMessage的消息函数中添加你要实现处理按键事件的代码。
- /********************************************************
- * 方法名称: PreTranslateMessage(MSG *pMsg)
- * 描述: 该方法主要是处理传递消息的,任何消息产生的消息都会经过这个方法处理,
- * 然后,消息才会到达相应的应用程序中。
- * 调用模块:CDialogEx::PreTranslateMessage(pMsg)父类的对应方法
- * 输入: MSG类型的消息对象指针
- * 输出: 无
- * 返回值: bool值
- *********************************************************/
- BOOL CSerialDlg::PreTranslateMessage(MSG* pMsg)
- {
- // TODO: Add your specialized code here and/or call the base class
- // 把Esc和Enter按键事件消息过滤掉,否则该消息会导致对应应用程序调用OnOK()方法,结束应用程序
- if (pMsg->message == WM_KEYDOWN)
- {
- switch(pMsg->wParam)
- {
- case VK_ESCAPE: //Esc按键事件
- return true;
- case VK_RETURN: //Enter按键事件
- return true;
- default:
- ;
- }
- }
- return CDialogEx::PreTranslateMessage(pMsg);
- }