다이알로그 Enter, ESC 키입력에 대한 종료 막기
매우 많은 방법이 있지만..
1. Enter 키에 대한 종료 막기
다이알로그가 Enter키를 입력받게 되면 OnOK() 함수가 실행되게 되는데
그 부분에 다이알로그를 종료하는 코드가 있다.
새로 만든 다이알로그에서 OnOK() 함수를 오버라이딩 하면 된다.
2. ESC 키에 대한 종료 막기
ESC 키를 입력 받으면 OnCancel() 함수가 실행되어 다이알로그가 종료한다.
역시 OnCancel() 함수를 오버라이딩 하면 되지만,
이렇게 하면 시스템메뉴의 종료또한 동작을 멈추게 된다.
키 입력 메시지가 오면 OnCancel() 이 동작하기 전에 가로 챈다.
1. Enter 키에 대한 종료 막기
다이알로그가 Enter키를 입력받게 되면 OnOK() 함수가 실행되게 되는데
그 부분에 다이알로그를 종료하는 코드가 있다.
새로 만든 다이알로그에서 OnOK() 함수를 오버라이딩 하면 된다.
void CXDialog::OnOK() {}
2. ESC 키에 대한 종료 막기
ESC 키를 입력 받으면 OnCancel() 함수가 실행되어 다이알로그가 종료한다.
역시 OnCancel() 함수를 오버라이딩 하면 되지만,
이렇게 하면 시스템메뉴의 종료또한 동작을 멈추게 된다.
키 입력 메시지가 오면 OnCancel() 이 동작하기 전에 가로 챈다.
BOOL CXDialog::PreTranslateMessage(MSG* pMsg)
{
// ESC 키 입력에 대한 종료 막기
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}