Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Virtual Key символа


Автор: Zmeevic 10.1.2008, 04:44
Поиск не работает, поэтому Вопрос:
 Как из символа 'Ф' получить его VirtualKey = 65?
Пробую через VkKeyScan(), для 'ф' - все OK = 65, но для 'Ф' = 321.
т.е. работает если символ прописной, пробовал использовать tolower() - результат тот же...   smile 

глобальный смысл такой: надо из русских символов получать VK, что бы затем обрабатывать в WM_KEYDOWN независимо от того ф это, или Ф. 

Автор: ama_kid 10.1.2008, 09:34
Из справки по http://msdn2.microsoft.com/en-us/library/ms646329.aspx:
Цитата
If the function succeeds, the low-order byte of the return value contains the virtual-key code and the high-order byte contains the shift state, which can be a combination of the following flag bits.
Bit    Meaning
1    Either SHIFT key is pressed.
2    Either CTRL key is pressed.
4    Either ALT key is pressed.
8    The Hankaku key is pressed
16    Reserved (defined by the keyboard layout driver).
32    Reserved (defined by the keyboard layout driver).

LoByte(321) = 65
HiByte(321) = 1
Т.о. имеем, что для 'Ф' - в.код = 65 и клавиша шифт - нажата... 

Автор: Zmeevic 11.1.2008, 05:34
Вот это я с тупил smile , СПАСИБО!!!

Автор: Zmeevic 11.1.2008, 05:52
Вопрос решен!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)