在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) //屏蔽回车和ESC
return TRUE;
if (pMsg->message == WM_SYSKEYDOWN&&pMsg->wParam== VK_F4 ) //屏蔽ALT+F4
return TRUE;
return CDialog::PreTranslateMessage(pMsg);//别忘了这句
}