모델 대화 상자가 있습니다. OnCancel 함수를 재정 의하여 ESC 버튼을 눌러 예기치 않은 종료를 중지했습니다. 그러나 이것은 새로운 문제를 야기했습니다. 닫기 (x) 버튼을 사용하여 응용 프로그램을 닫을 수 없습니다. 함수의 구현은 다음과 같습니다.MFC/Visual C++의 OnCancel 버튼 재정의
void MyDlg::OnCancel()
{
}
모델 대화 상자가 있습니다. OnCancel 함수를 재정 의하여 ESC 버튼을 눌러 예기치 않은 종료를 중지했습니다. 그러나 이것은 새로운 문제를 야기했습니다. 닫기 (x) 버튼을 사용하여 응용 프로그램을 닫을 수 없습니다. 함수의 구현은 다음과 같습니다.MFC/Visual C++의 OnCancel 버튼 재정의
void MyDlg::OnCancel()
{
}
대화 상자를 닫으면 효과적으로 취소됩니다. OnCancel 핸들러에서 닫기를 비활성화 했으므로 아무 것도 일어나지 않습니다.
BOOL CYourDlg::PreTranslateMessage(MSG* pMsg)
{
switch (pMsg->message)
{
case WM_KEYDOWN:
switch(pMsg->wParam)
{
case VK_ESCAPE:
case VK_CANCEL: return true;
}
break;
}
return CDialog::PreTranslateMessage(pMsg);
}
의 OnCancel은 X 버튼을 누르거나 탈출을 눌러 호출하고 함수 내에서 알 수있는 방법은 없습니다 :
만, 키보드 메시지를 전처리에 필요한 ESC를 해제합니다. 사용자가 종료하기를 원하는지 묻는 메시지 대화 상자를 추가하거나, 이스케이프 키 트래핑을 보도록 요청할 수 있습니다. 특히 누르십시오. –또는 취소 버튼. –