在MFC程序中,如果不加设置的话,默认按下ESC键、回车键以及ALT+F4都会使程序退出,可以使用以下方法屏蔽掉。
在PreTranslateMessage中拦截WM_KEYDOWN和WM_SYSKEYDOWN,通过判断wParam来判断是否为ESC,回车或者F4,然后直接返回就行
例如:
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
if (pMsg->wParam==VK_ESCAPE ||pMsg->wParam==VK_RETURN)
return TRUE;
if (pMsg->message == WM_SYSKEYDOWN&&
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}