MFC에서 ESC or Enter키를 누르게 되면 SW가 꺼지는 현상이 발생된다.
이를 막기 위한 것
1. Ctrl + Shift + x로 클래스 마법사에 들어간다.
2. 가상 함수를 클릭한다.
3. PreTranslateMessage를 생성한다.
4.
BOOL ShipInfoDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
if (VK_RETURN == pMsg->wParam || VK_ESCAPE == pMsg->wParam)
{
return TRUE;
}
return CBCGPDialog::PreTranslateMessage(pMsg);
}
이렇게 설정하여 주면 막을 수 있다.
RETURN은 Enter이고 ESCAPE가 ESC이다.
여기에다가 만약 어느 컨트롤에서 Enter키를 눌렀을 때의 이벤트를 설정해 줄 수있다.
BOOL ShipInfoDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
if (WM_KEYDOWN == pMsg->message)
{
if(pMsg->message == WM_KEYDOWN && pMsg->hwnd == GetDlgItem(IDC_SEARCHTEXT)->m_hWnd && pMsg->wParam == VK_RETURN)
{
OnBnClickedSearchbtn();
}
}
if (VK_RETURN == pMsg->wParam || VK_ESCAPE == pMsg->wParam)
{
return TRUE;
}
return CBCGPDialog::PreTranslateMessage(pMsg);
}
위처럼 IDC_SEARCHTEXT라는 컨트롤에서 Enter키를 누르게 된다면
OnBnClickedSearchbtn();이라는 함수를 실행하게 된다. 끗
'[C++, MFC]' 카테고리의 다른 글
OpenGL Line에 따라 Texture의 색상이 바뀌는 현상 (0) | 2022.12.06 |
---|---|
[C++, MFC] 컨트롤 Focus 해제, 잃게하는 방법 (0) | 2022.11.25 |
[MFC, C++] ComboBox DropDown ReadOnly 만들기 (0) | 2022.11.22 |
[MFC] Text Control 색상 변경 (0) | 2022.11.18 |
[MFC] Virtual List Control 대용량 처리 사용 방법 (0) | 2022.11.07 |