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)
 {
     case VK_LEFT:// 왼쪽 화살표 키 눌러짐.

 

          break;
     case VK_RIGHT: // 오른쪽 화살표 키 눌러짐.

 

          break;
 }
 
 // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.

 CView::OnKeyDown(nChar, nRepCnt, nFlags);
}

 

 

///217.

 

 

 

 

Posted by 리치굿맨

댓글을 달아 주세요