반응형
MFC 프로그램 창에서 PreTranslateMessage 함수를 이용하여 키보드 키 조합으로 Ctrl + A 또는 C를 누를때 printf 출력합니다.
작성된 코드를 참고하시고 활용하시기 바랍니다.
# 개발 환경
운영체제 : Windows 10 Pro 64bit
개발도구 : Visual Studio 2019 Community
# 필요 함수
# 결과
- PreTranslateMessage 함수에 키보드 Ctrl+A, C를 누를 시 printf 출력
# 예제 소스
- PreTranslateMessage(MSG* pMsg)
BOOL CMFCApplication1Dlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN){
if(GetKeyState(VK_CONTROL) & 0x8000){
if (pMsg->wParam == 65) printf("Ctrl + A\n");
else if(pMsg->wParam == 67) printf("Ctrl + C\n");
}
}
return CDialogEx::PreTranslateMessage(pMsg);
}
- pMsg 매개변수로 입력한 키 정보를 받을 수 있습니다.
- pMsg->meesage 로 통해 윈도우메시지를 받음(WM_KEYDOWN = 키 누를 때) (윈도우메시지 보기)
- pMsg->wParam 로 통해 가상키(Virtual Key)를 받음 (VK_code) (가상코드 보기)
- GetKeyState 로 통해 키의 토글 상태 값과 0x8000 AND연산
- 0x8000 : 이전에 누른 적이 없고 호출 시점에서 눌린 상태
감사합니다.
잘못된 정보나 오타 및 수정사항이 있을 경우 댓글로 달아주시면 감사하겠습니다.
반응형
'GUI > C++ MFC' 카테고리의 다른 글
[C++/MFC] UI 컨트롤 ID 포커스 설정하기 (0) | 2022.03.20 |
---|---|
[C++/MFC] 윈도우 및 다이얼로그 위치 지정하기(GetSystemMetrics) (0) | 2022.03.19 |
[C++/MFC] 키보드로 선택한 UI컨트롤 타입 확인하기(GetWindowLong) (0) | 2022.03.19 |
[C++/MFC] 마우스, 키보드 입력 이벤트 호출하기(PreTranslateMessage) (0) | 2022.03.12 |
[C++/MFC] Visual Studio MFC 프로젝트 만들기 (5 step) (0) | 2022.03.03 |