본문 바로가기
C/C++/API

2009.07.27 API KEY입력

by 꿀꿀이냐옹이 2009. 7. 27.
반응형


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;
 

 switch(iMessage)
 {

 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

댓글