한 걸음씩..

MFC KeyDown 이벤트가 안될 때 본문

프로그래밍

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;
}
 

 

반응형