프로그래밍
MFC KeyDown 이벤트가 안될 때
smdy0426
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;
}
반응형