VC++ MFC기반의 키보드 입력처리.
1. 클래스 위저드 에서 메시지 선택을 WM_KEYDOWN(키를 누른 경우 발생하는 메시지) 이나, WM_KEYUP(눌렀던 키를 놓았을때 발생하는 메시지) 을 선택하여 핸들러 함수를 추가한다. 아래 코드예는 VC++2010 에서 CMyView 클래스에 WM_KEYDOWN 메시지 핸들러를 추가한 경우 자동 생성된 코드.
void CMyView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다. CView::OnKeyDown(nChar, nRepCnt, nFlags); |
2. 위 메시지 핸들러는 모든 키에서 전부 실행되는 구간이므로 특정키에서만 처리할려면 핸들러 함수 인자로 전달된 nChar 값을 이용하여 특정키에 대한 처리를 수행한다. nChar 로는 Virtual-Key Code 가 전달되며 Virtual-Key Code 의 전체리스트는 여기 (http://igotit.tistory.com/218) 에서 볼 수 있다.
예로 키보드중 왼쪽 화살표나 오른쪽 화살표가 눌러진 경우에 대해서만 선택적으로 뭔가를 처리하려는 경우 아래 코드 처럼 작성하면 된다.
void CMyView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) switch(nChar)
break;
break; CView::OnKeyDown(nChar, nRepCnt, nFlags); |
///217.
'VisualStudio.C++.C# > 코딩팁,함수활용,단편' 카테고리의 다른 글
다른 프로그램과 메시지 송수신. - RegisterWindowMessage (0) | 2015.06.05 |
---|---|
Virtual-Key Codes. VC++ (0) | 2015.01.19 |
동적 메모리 할당. 변수,배열, new delete (0) | 2015.01.17 |
스레드 생성 방법 및 다중스레드 사용위한 필수 옵션 셋팅. VC++ (0) | 2015.01.10 |
GetLastError 표현하기, 프로세스 죽이기.VC++ (0) | 2015.01.10 |
댓글