WM_SYSKEYDOWN не обновляется
Я пробовал что-то с WM_SYSKEYDOWN и WM_SYSKEYUP для ввода с клавиатуры.
Вот важная часть кода.
case WM_SYSKEYDOWN:
if (wParam == VK_MENU) // VK_MENU = 18 = alt keys
{
if (!(lParam & (1 << 30)))
{
std::cout << "Pressed left alt key" << std::endl;
}
};
break;
case WM_SYSKEYUP:
if (wParam == VK_MENU) // VK_MENU = 18 = alt keys
{
std::cout << "Released left alt key" << std::endl;
};
break;
Я попытался напечатать одну строку один раз, если нажал кнопку, и распечатать другую строку при отпускании клавиши.
Отпускание работает, но нажатие откликов только один раз каждые 2 нажатия.
if (!(lParam & (1 << 30)))
Эта строка должна часто прерывать публикацию строки снова.
Я не понимаю, почему... но я надеюсь, что да.
Заранее спасибо!
1 ответ
Решение
Я не использовал эту функцию, которую я нашел.
if (GetAsyncKeyState(VK_LSHIFT) & 0x8000)
{
// Button pressed!
}
Это хорошо работает:D