달력

12

« 2018/12 »

  •  
  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
  •  

'WM_KEYUP'에 해당되는 글 1

  1. 2010.05.12 MFC-키보드 입력
2010.05.12 17:45

MFC-키보드 입력 프로그래밍/MFC2010.05.12 17:45







API에 존재하는 WM_KEYDOWN이나 WM_KEYUP, WM_CHAR, WM_SYSKEYDOWN 등이 존재 하는데, 그 부분을 MFC로 다루어 보자.

일단 키 입력이 이루어 졌을 때 재대로 작동하는지 확인 하기 위해,

새로운 윈도우 클래스을 2개정도(STATIC으로) 만들자.( 새로운 윈도우 클래스 생성은 이전 포스팅 참조 )



위쪽 Static은 호출 된 함수, 두번째 Static은 눌린 키에 대해서 보이게 할 것이다.

Static을 2개 띄운 이 후, View속성에 메시지 탭에서 WM_KEYDOWN, WM_CHAR, WM_SYSKEYDOWN을 각각 추가한다.
각각의 함수를 생성하게 되면 OnKeyDown, OnChar, OnSysKeyDown식으로 생성이 될 것이다.
각 함수에

과 같이 넣어 주자. 실행 하면, 키를 누를때 마다 Static이 변하는 것을 확인 할 수 있다.
문자열 'A~Z', '1~0', NumLock키 등.. OnChar 함수를 호출 하는것을 확인 할 수 있고,
그외, 방향키나 Delete키 Space Bar, Enter Key 같은 경우는 OnKeyDown 함수를 호출 하는 것을 알 수 있다.
그리고 Alt와 F10키를 누르면 OnSysKeyDown 함수가 호출 되는 것을 알 수 있다.

한가지 주의 할 것은 문자열 입력을 한다고 해서 OnKeyDown 함수를 들리지 않는 것은 아니다.
순서는 OnKeyDown -> OnChar 순으로 이동 하게 되고,
반대로 OnSysKeyDown의 경우엔 OnKeyDown과 OnChar을 들르지 않는다.(SetWindowText를 MessageBox로 변경 하거나, BreakPoint를 활용하여 확인 하자)
이 점을 숙지 하여 상황에 따라서 그때 그때 맞는 함수를 잘 사용하는 것이 키 포인트 인거 같다.

// 실행 화면

'프로그래밍 > MFC' 카테고리의 다른 글

MFC-마우스 입력  (0) 2010.05.16
MFC-GetKeyState()  (0) 2010.05.12
MFC-GetWindowRect(), ScreenToClient(), SetWindowPos()  (0) 2010.05.12
MFC-키보드 입력  (0) 2010.05.12
MFC-새로운 자식 클래스 생성하기  (0) 2010.05.12
MFC-기본적인 생성 방법  (0) 2010.05.12
Posted by 안식의후크