Как 1 раз обработать нажатие клавиши?
Проблема заключается в том, что если зажать клавишу в итоге "case WM_KEYDOWN" будет возвращать клавишу постоянно.
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
например можно
отлавливать
WM_KEYUP, тогда будет отловлено только 1 "нажатие"первый метод имеет недостаток, что если нажать и не отпускать, то событие долго не будет срабатывать, поэтому оптимальнее сделать так:
case WM_KEYDOWN: // выполнять действия, только если флаг нажатия сброшен if (isKeyPressed == false) { // сделать какие-то действия make_actions(); // установить флаг нажатия isKeyPressed = true; } break; case WM_KEYUP: // сбросить флаг нажатия isKeyPressed = false; break;