2011-09-05 4 views
0

WM_KEYDOWN 메시지에서 고유 키를 식별 : 그러나 아주 잘 작동하지 않았다, 나는의 wParam에서 제공하는 가상 키 코드를 사용하려고

  • 일부 키는 것과 같은 키 코드에 매핑

    • 여러 키를 모든
    • 가상 키에 인식되지는 (내가 원하지 않는/필요) 키보드 레이아웃

    그런 다음 내가의 lParam은 "확장"과 함께 나에게 스캔 코드를 줄 것이다 것을 보았다에 적용 할 듯 깃발, 위

    value = (lParam & 0x01FF0000) >> 16; 
    

    이 값은 항상도 다양한 키보드/시스템에서 키보드에서 동일한 키에 대한 동일합니다 : 채널과 같이 계산 할 때 키보드에있는 모든 단일 키에 대해 다른 값을 생성하는 것?

  • 답변

    1

    키보드마다 키보드의 스켄 코드가 다를 수 있습니다. 가상 키 코드를 사용하는 것이 가장 좋습니다. http://msdn.microsoft.com/en-us/library/ms646267(v=vs.85).aspx에서 : 키보드의 각 키에 할당

    는 주사 코드라는 고유 값, 키보드의 키에 대한 장치 식별자 의존적이다. 키보드는 사용자가 키를 누를 때 키를 입력 할 때와 사용자가 키를 놓을 때 다른 키를 입력 할 때 두 개의 스캔 코드를 생성합니다.

    키보드 장치 드라이버는 스캔 코드를 해석하고 을 가상 키 코드로 변환합니다.이 가상 키 코드는 에 정의 된 시스템의 키 용도를 식별합니다.

    관련 문제