Dialog based 프로그램 작성시 Enter, ESC Key 처리



 보통 Dialog based 기반으로 프로그램 작성시
특별하게 Enter key 에 대한 처리 루틴을 만들지 않으면
Enter key를 누르면 프로그램이 종료 된다.

(VC++로 생성한 모든 프로그램은 특별히 변경시키지 않는 이상 Ente Key를 누르면
 'IDOK' 라는 메시지가 발생함. 이런 이유 때문에 Dialog 기반으로 만든 프로그램에서는
 엔터키를 누르면 프로그램이 종료됨.)





방법1. Enter Key 처리

IDOK 에 대한 메시지 처리기를 만들지 않아도 자동적으로 먹는거 같다.

사용자 삽입 이미지


특별히 Enter key 에 대한 메시지 처리 루틴이 없다면
아무 동작도 하지 않게 작성해 놓는 것이 좋다.

사용자 삽입 이미지





방법2. Enter, ESC key 처리

PreTranslateMessage 함수 Overriding
아직 공부하지 않았지만 "후킹" 이란 방법을 이용한 것임.

BOOL CManagerClientDlg::PreTranslateMessage(MSG* pMsg)
{
  if (pMsg->message == WM_KEYDOWN) {
        if (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE) {
      // VK_RETURN  : Enter Key
      // VK_ESCAPE  : ESC key
           
      return TRUE;
        }
    }
 
  return CDialog::PreTranslateMessage(pMsg);
}




@
Posted by six605
,