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

Другие вопросы по тегам