본문 바로가기
VisualStudio.C++.C#/코딩팁,함수활용,단편

키보드 입력처리. VC++ MFC 이용하는 경우.

by 리치굿맨 2015. 1. 19.

 

 

 

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.

 

 

 

 

댓글0


   
현물 |선물 인버스 |선물 USDT     현물 | 선물 USDT |봇제작툴/카피트레이딩     현물 |선물 인버스 |선물 USDT     선물 인버스 |선물 USDT