한 걸음씩..

MFC KeyDown 이벤트가 안될 때 본문

프로그래밍

MFC KeyDown 이벤트가 안될 때

반엘 2013. 7. 15. 10:59
주 원인은 컨트롤쪽에 포커스가 가 있어서 폼쪽 이벤트가 안걸리는 것이 문제 이다.

Mseesage 관련은 포커스가 폼에 있어야 메시지가 온다. 

이럴때 사용자 정의 이벤트를 사용해야 한다.

BOOL <Your Class>PreTranslateMessage(MSG* pMsg)
{
BOOL bCtrl = FALSE;
BOOL bAlt = FALSE;
BOOL bShift = FALSE;
BYTE keyState[256] = { 0 , };
 
switch ( pMsg->message )
{
case WM_KEYDOWN:
{
GetKeyboardState( keyState );
bCtrl = ( keyState[VK_LCONTROL] & 0x80 ) != 0 ? TRUE : FALSE;
bAlt = ( keyState[VK_LMENU] & 0x80 ) !=0 ? TRUE : FALSE;
bShift = ( keyState[VK_LSHIFT] & 0x80 ) != 0 ? TRUE : FALSE;
if ( bShift == TRUE && bCtrl == TRUE && pMsg->wParam == 0x4f )
{
}
break;
}
case WM_KEYUP:
break;
}
return FALSE;
}