본문 바로가기
프로그래밍/MFC (C++)

MFC ] 엔터, ESC 키 입력시 종료되지 않게하기

by eteo 2023. 9. 15.

 

 

 

 

엔터키 입력 시 종료되지 않게하기

 

OnOK 함수 재정의

 

OnOK() 호출  주석처리

void CRwrTesterDlg::OnOK()
{
	// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.

	//CDialogEx::OnOK();
}

 

 

 

 

 

 

ESC 키 입력 시 종료되지 않게하기

 

OnCancel() 함수를 재정의해서 주석처리하면 Alt+F4가 눌리거나 다이얼로그의 X버튼이 눌린 경우에도 종료되지 않기 때문에 다른방법을 쓴다.

 

PreTranslateMessage(MSG* pMsg) 함수 재정의

 

 

해당함수는 키보드 및 마우스 메시지를 번역하고 처리하기 전에 호출되는데 ESC키 입력시 바로 리턴하여 어플리케이션이 종료되지 않도록 한다.

 

BOOL CRwrTesterDlg::PreTranslateMessage(MSG* pMsg)
{
	// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
	if (pMsg->message == WM_KEYDOWN)
	{
		if (pMsg->wParam == VK_ESCAPE)
		{
			return TRUE;
		}
	}

	return CDialogEx::PreTranslateMessage(pMsg);
}