MFC对话框窗口框按Enter键和ESC键会消失的解决方案
解决在MFC程序中对话框或者TabControl焦点中按回车或者esc窗口消失的问题。
原因是 回车键和esc键 默认消息处理 分别是 onok 和oncancel
可以屏蔽onok和oncancel 或者重载pretranslatemessage 中截取回车消息和esc消息
在对话框对应的类重写PreTranslateMessage
BOOL CBDTPWorkBoxDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message == WM_KEYDOWN)
{
switch (pMsg->wParam)
{
case VK_RETURN:
return TRUE;
case VK_ESCAPE:
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
也可以 直接
void CDOperation::OnOK()
{
// TODO: Add extra validation here
//CDialog::OnOK();
}