728x90
안녕하세요!
이번 글에서는 ESC와 Enter키 입력에 대해 다이얼로그가 종료되는 현상을 방지하는 방법에 대해 알아보겠습니다.
PreTranslateMessage 함수를 사용하면 ESC 및 Enter 키 입력에 대한 다이얼로그 종료를 방지할 수 있습니다.
<예제 코드>
BOOL CMFCTESTDlg::PreTranslateMessage(MSG* pMsg)
{
// ESC 키 입력 처리
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
{
return TRUE; // 메시지를 더 이상 처리하지 않고 건너뜁니다.
}
// Enter 키 입력 처리
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
{
return TRUE; // 메시지를 더 이상 처리하지 않고 건너뜁니다.
}
return CDialogEx::PreTranslateMessage(pMsg); // 기본 메시지 처리 방식에 전달합니다.
}
- PreTranslateMessage 함수 내에서 먼저 ESC 키와 Enter 키에 대한 조건문을 추가하였습니다.
- 해당 조건문에서는 pMsg->message가 WM_KEYDOWN이고, pMsg->wParam이 각각 VK_ESCAPE와 VK_RETURN인지 확인합니다.
- 이 경우에는 반환값을 TRUE로 설정하여 메시지를 더 이상 처리하지 않고 건너뛰게 설정하여 프로그램 종료를 방지할 수 있습니다.
만약 다이얼로그 클래스가 CDialogEx가 아닌 다른 기본 클래스를 상속받는 경우, CDialogEx 대신 해당 기본 클래스로 변경하여 PreTranslateMessage 함수를 호출하면 됩니다.
위의 예제를 사용하면 ESC와 Enter 키 입력에 대한 다이얼로그 종료를 방지할 수 있습니다.
이를 통해 응용 프로그램의 사용성을 개선하고 사용자가 실수로 다이얼로그를 종료하는 상황을 방지할 수 있습니다.
감사합니다!
728x90
'[C++] > MFC 프로그래밍' 카테고리의 다른 글
[C++] MFC 프로그래밍 : OnGetMinMaxInfo 함수 (21) | 2023.06.22 |
---|---|
[C++] MFC 프로그래밍 : OnPaint 함수 (30) | 2023.06.19 |
[C++] MFC 프로그래밍 : PreTranslateMessage (36) | 2023.06.18 |
[C++] MFC 프로그래밍 : 이벤트 함수 추가 (31) | 2023.06.18 |
[C++] MFC 프로그래밍 : CString 클래스 (31) | 2023.06.18 |