반응형

 

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 : 이전에 누른 적이 없고 호출 시점에서 눌린 상태

 


감사합니다.

 

잘못된 정보나 오타 및 수정사항이 있을 경우 댓글로 달아주시면 감사하겠습니다. 

 


반응형

+ Recent posts