原理很简单,就是将MFC框架中PreTranslateMessage函数和OnOK函数这两个虚函数进行重写,添加想要执行的代码。
步骤一:
在窗体头文件(.h)中加入:
protected:
//PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的
virtual BOOL PreTranslateMessage(MSG *pMsg);
public:
virtual void OnOK();
步骤二:
在窗体源文件(.cpp)中加入:
BOOL CPosSystemDlg::PreTranslateMessage(MSG *pMsg)
{
//屏蔽ESC关闭窗体
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)
return TRUE;
//屏蔽回车关闭窗口(会导致回车在窗体上失效)
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN && pMsg->wParam)
return TRUE;
else
return CDialog::PreTranslateMessage(pMsg);
}
void CPosSystemDlg::OnOK()
{
//CDialogEx::OnOK();
}