plazzmex

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору BugFixer ок.. спасибо.. Abs62 Цитата: А можно и посмотреть на скан-код клавиши (он передаётся в LPARAM, биты 16-23). Скан-код левого Shift - 0x2A, правого - 0x36. Код: unsigned scan_code=(lParam >> 16) & 0xFF; if(scan_code==0x2A) // левый Shift if(scan_code==0x36) // правый Shift | | не совсем понял... можно поподробнее? и что такое unsigned scan_code=(lParam >> 16). это на C++? потому что оно не работает. а нельзя ли сделать вот так Код: switch (HIWORD(lParam)) { case 0x2A: strcpy(_KeyName,"LEFT SHIFT"); InvalidateRect(hwnd,NULL,TRUE); return 0; case 0x36: strcpy(_KeyName,"RIGHT SHIFT"); InvalidateRect(hwnd,NULL,TRUE); return 0; | вроде работает... а как я могу узнать scan code других клавиш? Добавлено: хотя нет.. теперь не работают все остальные кнопки.. Добавлено2: вот я попробовал по другому. это вроде нормально: Код: case VK_SHIFT: if(((lParam >> 16) & 0xFF) == 0x2A) { strcpy(_KeyName,"Left Shift"); InvalidateRect(hwnd,NULL,TRUE); return 0; } if(((lParam >> 16) & 0xFF) == 0x36) { strcpy(_KeyName,"Right Shift"); InvalidateRect(hwnd,NULL,TRUE); return 0; } |
| Всего записей: 1123 | Зарегистр. 29-09-2005 | Отправлено: 19:25 24-05-2007 | Исправлено: plazzmex, 19:42 24-05-2007 |
|