CDialog 클래스를 상속받아 만들어진 윈도우는 Enter와 ESC 키에 윈도우가 닫히는 특징이 있습니다. 이런 현상을 방지하려면 가상 함수인 PreTranslateMessage 함수에 WM_KEYDOWN 메시지를 검사해서 누른 키가 Enter나 ESC면 처리하지 않고 반환하게 하면 됩니다.


BOOL TestDlg::PreTranslateMessage( MSG* pMsg )
{
       if( pMsg->message == WM_KEYDOWN && (pMsg -> wParam == VK_RETURN || pMsg -> wParam == VK_ESCAPE) )
       {
               pMsg->wParam = NULL;
       }

       return CDialog::PreTranslateMessage( pMsg );
}

+ Recent posts