| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Определение кода клавиши |
| Автор: NewLine 23.10.2006, 13:45 | ||
| Привет всем. В своем MDI приложении я с помощью события OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) Отлавливаю коды клавиш. Как я понял коды клавиши не меняются в зависимости от того, нажаты ли клавиши Shift или CapsLock или нет??? Я конечно могу это фиксировать с помощью GetKeyState(),
но проблемма в том, что мне необходимо код этой клавиши отправить на другой компьютер и соответсвенно там отобразить. Поэтому нужно как-то сразу фиксировать большой и маленький регистр. Подскажите кто знает, как это зафиксировать? Спасибо. Добавлено @ 13:52 Я так понял, что нужно отдельно для управляющих клавиш типа (Shift, up_down и.т.д) OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) и отдельно для символов??? OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) |
| Автор: Earnest 23.10.2006, 14:08 |
| Да Добавлено @ 14:14 Если тебе все равно, какой SHIFT нажат - лучше проверять GetKeyState (VK_SHIFT). |
| Автор: NewLine 23.10.2006, 16:18 |
| Скажите пожалуйста. Если от OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) UINT nChar Я обрабатывал с помощью ToAscii(nChar, MapVirtualKey(nChar, 0), keyboardState,&BufChar, 0); А как обрабатывать от OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) UINT nChar ToAscii работает, но как-то не так. А что-то другие функции я не нашел. Это наверное не правильно, но тупое преобразование CString(nChar) работает. Спасибо. |