MFC屏蔽按键ESC、ENTER、Alt+F4
1、重写
重写下面的函数
virtual BOOL PreTranslateMessage(MSG* pMsg);
2、函数体
BOOL Cfile_trans_codeDlg::PreTranslateMessage(MSG* pMsg) { if (WM_KEYDOWN == pMsg->message ) { switch (pMsg->wParam) { case VK_ESCAPE: //Esc按键事件 return TRUE; case VK_RETURN: //Enter按键事件 return TRUE; default: break; } } if ( (WM_SYSKEYDOWN == pMsg->message) // WM_SYSKEYDOWN 表示ALT键按下 && (VK_F4 == pMsg->wParam) ) { return TRUE; } return CDialogEx::PreTranslateMessage(pMsg); }
3、注意:
如果 窗口继承 CDialog, 则上面的函数返回值应为:
return CDialog::PreTranslateMessage(pMsg);
若继承CDiaologEX,则返回值应为:
return CDialogEx::PreTranslateMessage(pMsg);
这样,按下enter 等屏蔽的按键,窗体就不会关闭了