태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


2008/07/23 13:45

Dialog 기반 프로그램에서 Enter 키나 ESC 키를 눌렀을때 프로그램이 종료되는 현상 막기

MFC 의 Dialog 기반에서 프로그램을 만들때,

Enter 키나 Esc 키를 입력하였을경우, 프로그램이 자동으로 종료 된다.

이는 CDialog::OnOK() 함수와 CDialog::OnCancel() 함수가 자동으로 호출되기 때문이다.

이를 방지 하기 위해서는 아래와 같이 해주면 된다.

1. 클래스뷰에서 Dialog 관련 클래스(ex - ~~~Dlg) 를 클릭후 속성창 부분의 <재정의> 버튼을 클릭

2. PreTranslateMessage 를 찾아서 추가

3. 추가된 PreTranslateMessage에 아래의 소스코드를 삽입


BOOL CMy723test1Dlg::PreTranslateMessage(MSG* pMsg)
{
    // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.

    if(pMsg->message == WM_KEYDOWN)
   {
      switch(pMsg->wParam)
      {
       case VK_ESCAPE:
       case VK_RETURN:
            return TRUE;
       default:
            break;
       }
    }

    return CDialog::PreTranslateMessage(pMsg);
}
Trackback 0 Comment 0