본문 바로가기
프로그래밍/MFC

MFC-GetKeyState()

by 리뷰하는 (게임)프로그래머_리프TV 2010. 5. 12.



GetKeyState는 전역으로 미리 선언되어 있는 함수인데,

특정키에 대한 정보를 가져 오는 역활을 한다.

예를 들어 Alt + Enter 키를 확인한다고 했을 때

시스템키인 Alt, F10에 대해서

키 조합을 확인 하기 위해 쓰인다.

OnSysKeyDown 함수를 생성하고(WM_SYSKEYDOWN)

void CTest1View::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
	WORD wResult = ::GetKeyState( VK_RETURN );
	BYTE byHigh = HIBYTE(wResult);

	// 상위 1번 비트가 1이면 키가 눌려진 상태라고 함
	if( byHigh & 0x01 )
	{
		AfxMessageBox( TEXT("Alt + Enter") );
	}

	CView::OnSysKeyDown(nChar, nRepCnt, nFlags);
}​


처럼 GetKeyState를 사용해 키 조합을 할 수 있다.
예제에서는 전역 함수를 사용한다는 것을 알리기 위해서 :: (범위 지정 연산자)를 사용 하였지만,
사실 사용하지 않아도 실행해는 큰 문제가 존재하지 않는다. 지역 함수내에 같은 이름의 함수가 존재 하지 않기 때문

// 실행 화면(알트 엔터를 눌렀을때 나오는 창)