WM_KEYDOWN 메시지는 키보드를 누를 때마다 윈도우로 전달되는데 문자가 아닌 모든 키에 대해서도 발생한다. 단 Alt 키와 윈도우 키, 한영 전환 키 등의 특수 키 몇 가지는 제외된다.
이때 wParam 으로는 문자 코드가 아닌 가상 키코드라는 것이 전달된다.
가상 키코드( Virtual Key Code )
시스템에 장착된 키보드의 종류에 상관없이 키를 입력받기 위해 만들어진 범용적인 코드값
VK_BACK( 08 )
Backspace
VK_TAB( 09 )
Tab
VK_RETURN( 0D )
Enter
VK_SHIFT( 10 )
Shift
VK_CONTROL( 11 )
Ctrl
VK_MENU( 12 )
Alt
VK_ESCAPE( 1B )
Esc
VK_SPACE( 20 )
Space
VK_LEFT( 25 )
좌측 커서 이동키
VK_UP( 26 )
위쪽 커서 이동키
VK_RIGHT( 27 )
오른쪽 커서 이동키
VK_DOWN( 28 )
아래쪽 커서 이동키
숫자 및 영문자의 키코드는 아스키 코드와 같으며 매크로 상수는 정의되어 있지 않으므로 문자 상수와 wParam 을 바로 비교하면 된다.
단, 영문자의 경우는 대문자 코드와 일치되어 있으므로 반드시 대문자와 비교해야 한다.
예를 들어 'Z' 키가 눌러졌는지를 알고 싶다면 if( wParam == 'Z' ) 로 비교하면 된다.