How can I stop mfc dialog application closing by pressing ESC (Escape key). After executing my application if I press ESC key then the window is closed. How can this be stopped? I am using VC++ 6.0.
You can override the OnCancel event and only move forward with the OnCancel call if IDCANCEL is the focused item.
void CMyDialog::OnCancel(void)
{
if(GetDlgItem(IDCANCEL) == GetFocus())
{
CDialog::OnCancel();
return;
}
}
There are different ways to do this. You can:
Check this for code examples.
For a PreTranslateMessage example, see this
Override OnCancel and don't call the base class implementation.
Don't go near OnClose unless you know what you're doing, you risk breaking the behaviour for Alt-F4 and the X button.
I've always regarded PreTranslateMessage for things like this as using a thermo-nuclear weapon to crack a nut, but if it floats your boat...