Click to See Complete Forum and Search --> : How to prevent ESC from closing a dialog app?


Low Ee Mien
March 30th, 1999, 08:46 PM
This part does a less-than-decent job:


void CMyProgDlg::OnCancel()

{

// do nothing

}


This will prevent the dialog box from closing due to a user pressing

the ESC key. Unfortunately, this will also prevent other methods of

exiting the dialog app, including Alt-F4 and pressing the "X" button

at the top right corner. I want the user to still be able to quit using

these methods (but not using ESC).


So, the question is : is there some way to specifically intercept

the ESC key before the IDCANCEL is issued to close the dialog box?

Walter An
March 30th, 1999, 09:02 PM
Try this.

Overide PreTranslateMessage, check WM_KEYDOWN message,

and return TRUE if key is ESC


Walter An

Low Ee Mien
March 31st, 1999, 01:38 AM
Thanks Walter for pointing me in the right direction.

Here's the code I've got now:


BOOL CMyProgDlg::PreTranslateMessage(LPMSG lpmsg)

{

if (lpmsg->message == WM_KEYDOWN)

if (lpmsg->wParam == VK_ESCAPE) return TRUE;

return FALSE;

}


Short and sweet, and it works.