[API] 가상키 코드(virtual key code)

WM_KEYDOWN 메시지는 키보드를 누를 때마다 윈도우로 전달되는데

문자가 아닌 모든 키에 대해서도 발생한다.

단, Alt키와 윈도우키, 한영 전환 키 등의 특수 키 몇 가지는 제외된다.

이때 wParam으로는 문자코드가 아닌 가상 키코드라는 것이 전달된다.

가상 키코드(virtual key code)란,

시스템에 장착된 키보드의 종류에 상관없이 키를 입력받기 위해 만들어진 범용적 코드이다.

 

 가상키 코드 

 값

 키

 VK_LBUTTON

 01

 

 VK_RBUTTON

 02

 

 VK_CANCEL

 03

 Ctrl-Break

 VK_MBUTTON

 04

 

 VK_BACK

 08

 Backspace

 VK_TAB

 09

 Tab

 VK_CLEAR

 0C

 NumLock이 꺼져 있을때의 5

 VK_RETURN

 0D

 Enter

 VK_SHIFT

 10

 Shift

 VK_CONTROL

 11

 Ctrl

 VK_MENU

 12

 Alt

 VK_PAUSE

 13

 Pause

 VK_CAPITAL

 14

 Caps Lock

 VK_ESCAPE

 1B

 Esc

 VK_SPACE

 20

 스페이스

 VK_PRIOR

 21

 PgUp

 VK_NEXT

 22

 PgDn

 VK_END

 23

 End

 VK_HOME

 24

 Home

 VK_LEFT  25  좌측 커서 이동키
 VK_UP  26  위쪽 커서 이동키
 VK_RIGHT  27  오른쪽 커서 이동키
 VK_DOWN  28  아래쪽 커서 이동키
 VK_SELECT  29  
 VK_PRINT  2A  
 VK_EXECUTE  2B  
 VK_SNAPSHOT  2C  Print Screen
 VK_INSERT  2D  Insert
 VK_DELETE  2E  Delete
 VK_HELP  2F  
 30~39  숫자키 0~9
 41~5A  영문자 A~Z
 VK_LWIN  5B  왼쪽 윈도우 키
 VK_RWIN  5C  오른쪽 윈도우 키
 VK_APP  5D  Apllication 키
 VK_NUMPAD0~  60~69  숫자 패드의 0~9
 VK_NUMPAD9    
 VK_MULTIPLY  6A  숫자 패드의 *
 VK_ADD  6B  숫자 패드의 +

 VK_SEPARATOR  6C  
 VK_SUBTRACT  6D  숫자 패드의 -
 VK_DECIMAL  6E  숫자 패드의 .
 VK_DIVIDE  6F  숫자 패드의 /
 VK_F1 ~ VK_F24  70~87  펑션키 F1 ~ F24
 VK_NUMLOCK  90  Num Lock
 VK_SCROLL  91  Scroll Lock

 

가상 키코드는 지금까지 나온 모든 키보드는 물론이고,

앞으로 만들어질 키보드까지 고려하여 만들어진 범용적인 코드이다.

코드표를 보면 VK_SELECT, VK_EXECUTE, VK_HELP 등과 같은 현재 키보드에 없는 키값들도

미리 정의되어 있으며, 펑션키도 F24까지 미리 만들어 놓았다.

이 외에 한국과 같이 2byte 문자를 지원하기 위한 특수한 가상키까지 포함되어 있는데 가상 키코드를

이렇게 범용적으로 만들어 놓은 이유는,

앞으로 윈도우즈를 키보드 구성이 완전히 다른 시스템으로 이식하더라도,

키코드를 그대로 쓸 수 있도록 하기 위한 배려이다.

Posted by croute

댓글을 달아 주세요