How can i stop mfc dialog application closing by pressing ESC (Escape key). After executing my application if u press ESC key then the window is closed. how it can be stopped, i am using VC++ 6.0.
+1
A:
There are different ways to do this. You can:
- Create an OnCancel Handler and do whatever you want with the Cancel notification
- You can Handle OnClose Event and do whatever you want.
- You can override PreTranslateMessage and check Esc key there and do whatever you want.
Check this for code examples.
For a PreTranslateMessage example, see this
Aamir
2009-06-16 10:35:45
+2
A:
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;
}
}
tschaible
2009-06-16 10:35:57
+1
A:
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...
Bob Moore
2009-06-16 21:38:47