Как обращаться с клавишей Ctrl + shift+A в sdi mfc
Я новичок в vc++.Как обращаться с клавишей Ctrl + shift+A в sdi mfc. Для ctrl + код работает нормально.
case _T('A'):
if(GetKeyState(VK_CONTROL) & 0x8000){
MessageBox(_T("Key Ctrl+A is pressed"));
}
else if((GetKeyState(VK_CONTROL) & 0x8000)&&(GetKeyState(VK_SHIFT) & 0x8000)){
MessageBox(_T("Key Ctrl+Shift+A is pressed"));
}
break;
1 ответ:
Ваше первое
if
-предложение истинно, независимо от того, нажата ли клавиша Shift, поэтому вы никогда не достигнетеelse
-предложения. Если вы измените порядок ваших утверждений, вы получите оба:case _T( 'A' ): if ( ( GetKeyState( VK_CONTROL ) < 0 ) && ( GetKeyState( VK_SHIFT ) < 0 ) { MessageBox( _T( "Key Ctrl+Shift+A is pressed" ) ); } else if ( GetKeyState( VK_CONTROL ) < 0 ) { MessageBox( _T( "Key Ctrl+A is pressed" ) ); } break;
Если вы хотите обрабатывать нажатия клавиш глобально, вы можете использоватьускорители клавиатуры вместо этого. Самый простой способ настроить ускорители - это использовать ресурс ускорителей .