Get shortcut key failed with "Alt + num" in PretranslateMsg in MFC? -


i want preprocess keyboard message in pretranslatemsg in mfc. write following code.

 if( pmsg->message == wm_keyup )            {             if( getkeystate(vk_control) || getkeystate(vk_shift) || getkeystate(vk_menu) )             {                 cstring cskey = translatekeytostring( getkeystate(vk_control) & 0x8000 ,getkeystate(vk_shift) & 0x8000, getkeystate(vk_menu)&0x8000, pmsg->wparam );                 doworkforacceleratorkey(cskey);                 return true;             }         } 

with above code. can successfull shotcut in "cskey" "ctrl+alt+1" , "ctrl+1" can't "alt+1", when press alt+1, cskey strange single character. happens "alt+1", , how solve problem? thank you.

you don't wm_keyup message 1. alt key, entered characters used in different way.

instead of wm_keyup, receive wm_syskeyup. wm_keyup receive should have nvirtkey code of vk_menu.

this messages captured spy++ when press alt+1 in notepad.

wm_syskeydown nvirtkey:vk_menu crepeat:1 scancode:38 fextended:0 faltdown:1 frepeat:0 fup:0 wm_syskeydown nvirtkey:vk_menu crepeat:1 scancode:38 fextended:0 faltdown:1 frepeat:1 fup:0 wm_syskeydown nvirtkey:'1' crepeat:1 scancode:02 fextended:0 faltdown:1 frepeat:0 fup:0 wm_syschar chcharcode:'49' (49) crepeat:1 scancode:02 fextended:0 faltdown:1 frepeat:0 fup:0 wm_syskeyup nvirtkey:'1' crepeat:1 scancode:02 fextended:0 faltdown:1 frepeat:1 fup:1 wm_keyup nvirtkey:vk_menu crepeat:1 scancode:38 fextended:0 faltdown:0 frepeat:1 fup:1 wm_syskeydown nvirtkey:vk_menu crepeat:1 scancode:38 fextended:0 faltdown:1 frepeat:0 fup:0 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -