方法一:
重载虚函数,BOOL CEvaluateDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
return true;
return CDialog::PreTranslateMessage(pMsg);
方法二:
屏蔽ESC:
重载CDialog的OnCancel ,且让这两个函数的实现为空。
加入WM_CLOSE消息处理,实现如下,
void CMyDialog::OnClose()
{
DestroyWindow();
}
本文介绍了两种在C++中禁用ESC键关闭对话框的方法:一是通过重载虚函数CEvaluateDlg::PreTranslateMessage来捕获ESC键事件并阻止其默认行为;二是通过重载CDialog的OnCancel函数并使其为空,同时处理WM_CLOSE消息实现对话框的关闭。
147

被折叠的 条评论
为什么被折叠?



