MFC有两个按键消息要自己处理, Enter、ESC键,这两个按键会导致程序退出,
重写 virtual BOOL PreTranslateMessage(MSG* pMsg) 过滤这两个按键消息,就可以解决这些问题。
- BOOL CxxDlg::PreTranslateMessage(MSG* pMsg)
- {
- if (pMsg->message == WM_KEYDOWN)
- {
- switch(pMsg->wParam)
- {
- // 回车键,返回TRUE表示该消息已处理,不再往下传递
- case VK_RETURN:
- return TRUE;
- // // ESC键,返回TRUE表示该消息已处理,不再往下传递
- case VK_ESCAPE:
- return TRUE;
-
- default:
- break;
- }
- }
-
- return CDialog::PreTranslateMessage(pMsg);
- }
复制代码