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


Автор: AlexanderV 12.5.2007, 18:55
Собственно задачей является получения состояния кнопки (как GetAsyncKeyState()), только не в виде нажата/ненажата, а как символ, причем преобразованный с учетом текущего языка ввода, клавишы Shift и CapsLock. Получить надо без использования цикла сообщений.
MapVirtualKey у меня не работает как хотелось бы, что надо использвать TranslateMessage? Наверняка есть какая-то более простая API, подскажите, кто знает!

Автор: Earnest 14.5.2007, 19:52
А MapVirtualKeyEx + GetKeyboardlayout не пробовал?

Добавлено через 5 минут и 55 секунд
А еще ToAscii.

Автор: dizzy1984 15.5.2007, 10:31
Не совсем уверен что в тему, но GetKeyNameText.

Автор: AlexanderV 15.5.2007, 12:01
Earnest
MapVirtualKeyEx(VK_A,2,GetKeyboardLayout(NULL));
у меня не работает (т.е, не зависимо от выбранного языка возвращает значение VK_A).


dizzy1984
Да, похоже GetKeyNameText вообще возвращает не то, там нужен скан-код.

Вопрос упрощается smile В принципе, мне достаточно получить для каждой виртуальной клавишы (VK_A-VK_Z), какая на ней нарисована русская буква. Сообщениями пользоваться нельзя, так как это в Real-Time цикле игровой 3D-программы.

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