Как через Win Api проверить состояние клавиши: зажата, нажата, отпущена? События использовать для этой цели не могу. Только функции. Проверку зажатой клавиши уже реализовал:
bool result;
result=false;
if(GetAsyncKeyState(MapVirtualKey(code,MAPVK_VSC_TO_VK))==-32767) result=true;
return result;
Как реализовать две оставшиеся проверки?
Используйте более простой вызов GetKeyState, чтобы получить состояние клавиши по ее virtual-key code:
Пример:
if (GetKeyState(VK_LEFT) < 0) {
// VK_LEFT нажата
} else {
// VK_LEFT отпущена
}
if ((GetKeyState(VK_CAPITAL) % 2) == 1) {
// CAPS LOCK зажат
} else {
// CAPS LOCK отжат
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей