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를 사용해 키 조합을 할 수 있다.
예제에서는 전역 함수를 사용한다는 것을 알리기 위해서 :: (범위 지정 연산자)를 사용 하였지만,
사실 사용하지 않아도 실행해는 큰 문제가 존재하지 않는다. 지역 함수내에 같은 이름의 함수가 존재 하지 않기 때문
// 실행 화면(알트 엔터를 눌렀을때 나오는 창)
'프로그래밍 > MFC' 카테고리의 다른 글
MFC-마우스입력( 드래그 & 드랍 ) (0) | 2010.05.16 |
---|---|
MFC-마우스 입력 (0) | 2010.05.16 |
MFC-GetWindowRect(), ScreenToClient(), SetWindowPos() (1) | 2010.05.12 |
MFC-키보드 입력 (0) | 2010.05.12 |
MFC-새로운 자식 클래스 생성하기 (0) | 2010.05.12 |