키 입력을 감지하고 싶다면, PreTranslateMessage() 함수를 추가 하면 됩니다.
BOOL CDlg_Main::PreTranslateMessage(MSG* pMsg) // Enter, ESC key 안먹게,
{
if (pMsg->message == WM_KEYDOWN) // Key 눌려지면,
{
if ( pMsg->hwnd == GetDlgItem(IDC_m_ED_TxDirect )->m_hWnd ){ // 특정 Control 이면
switch ( pMsg->wParam ) {
case VK_RETURN: // VK_RETURN == 0x0d , Enter 이면,
m_TxDir.ReplaceSel(_T("\r\n"));
AfxMessageBox(_T("ENter"));
return TRUE;
}
} else { // 위 컨트롤이 아니면,
if (pMsg->wParam == VK_ESCAPE || // ESC 이거나
pMsg->wParam == VK_RETURN) // 리턴 이면
return TRUE; // 무시 해라
}
}
return CDialogEx::PreTranslateMessage(pMsg);
}
위 보기는
1. 특정 컨트롤 ( Edit box : IDC_m_ED_TxDirect ) 에서 엔터 치면, 다음줄로 가게 하는것 추
만약 이게 없으면, 아무일 안함,
2. 그 컨트롤 아니면, 엔터키와 ESC 키를 무시 하도록,
하는 것이다.
return true; // true면 동작을 안먹게 함. false면 동작을 먹게 함.
'개발 > mfc' 카테고리의 다른 글
| mfc, Visual Studio project 명, 이름 변경하기 (1) | 2024.11.18 |
|---|---|
| mfc, List Control Cell값 수정 edit, 변경 하기 - sample source (2) | 2024.11.15 |
| mfc, Project 만들기 (0) | 2024.10.31 |
| mfc, combobox 만들기, 고치기 (0) | 2024.10.29 |
| mfc. diaog 위치 가져오기, 부모 옆에 설정하기 source example (0) | 2024.09.19 |