WM_KEYDOWN
가상키코드 값 키
-------------------------------------------------------------------------------------------------------
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 Application 키
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
--------------------------------------------------------------------------------------------------
<코드>LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static int x=100;
static int y=100;
{
case WM_DESTROY: PostQuitMessage(0);
return 0;
case WM_KEYDOWN:
switch(wParam)
{
case VK_LEFT:
x-=8;
break;
case VK_RIGHT:
x+=8;
break;
case VK_UP:
y-=8;
break;
case VK_DOWN:
y+=8;
break;
}
InvalidateRect(hWnd,NULL,FALSE);
return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
TextOut(hdc,x,y,TEXT("A"),1);
EndPaint(hWnd,&ps);
return 0;
<코드 설명>
static 을 통해, x와 y를 선언하여, 좌표값을 기억 합니다.
그리고 WM_KEYDOWN 메시지가 발동하고,이것이 wParam으로 전송되면서
case에 의해 분화된, 위, 아래, 왼쪽, 오른쪽 키의 입력을 읽습니다.
그리고
InvalidateRect(hWnd,NULL,TRUE);
를 통해, 조정된 좌표가 화면에 반영되도록 해야합니다. (뒤의 TRUE를 FALSE로 바꿔주면, 'A'라는 글자가
계속해서 겹쳐서 나타나게 됩니다. 이전의 출력 결과를 지우지 않고 그리기 때문입니다.)
'C/C++ > API' 카테고리의 다른 글
2009.07.27 API TIMER (0) | 2009.07.27 |
---|---|
2007.07.27 API Mouse입력 (0) | 2009.07.27 |
2009.07.27 API도형그리기 (0) | 2009.07.27 |
API기본 함수 (0) | 2009.07.27 |
2009.07.24 API 수업 (0) | 2009.07.24 |
댓글