VC++ 에서 대화상자 기반으로 프로그램을 작성하게 되면...

기본적으로 ESC를 누르면 프로그램 종료가 되어버립니다...

( 대화상자 자체가.. 'ESC'키를 누르면 종료가 되도록 되어있으니..ㅋ )

프로그램을 작성하다보면 'ESC'키를 눌러도 프로그램 종료가 되지 않도록..

하고 싶을 때가 있죠...

이럴 때는.. PreTranslateMessage 를 사용하면 됩니다.

( PreTranslateMessage 함수는 TranslateMessage 가 호출되기 전 호출되며,
  모든 메시지가 거쳐가는 곳입니다. )

PreTranslateMessage 를 아래와 같이 재정의하면...

ESC 키를 눌러도 프로그램 종료가 되지 않도록 할 수 있답니다..ㅋ

BOOL CDialogTestDlg::PreTranslateMessage(MSG* pMsg) 
{ 
    // TODO: Add your specialized code here and/or call the base class 
    switch (pMsg->wParam) {
    case VK_ESCAPE:
        return TRUE;

    default:
        break;
    }
    
    return CDialog::PreTranslateMessage(pMsg);
}