1. ホーム
  2. c++

[解決済み] C++でキーが押されているかどうかを確認する方法

2022-01-31 22:48:45

質問事項

Windowsでキーが押されているかどうかを確認するにはどうしたらいいですか?

どのように解決するのですか?

他の方もおっしゃっているように、クロスプラットフォームでの方法はありませんが、Windowsでは以下のようにすることができます。

以下のコードは、キー'A'が押されているかどうかをチェックするものです。

if(GetKeyState('A') & 0x8000/*Check if high-order bit is set (1 << 15)*/)
{
    // Do stuff
}

シフトなどの場合、これらのいずれかを渡す必要があります。 https://msdn.microsoft.com/de-de/library/windows/desktop/dd375731(v=vs.85).aspx

if(GetKeyState(VK_SHIFT) & 0x8000)
{
    // Shift down
}

下位ビットは、キーがトグルされているかどうかを示す。

SHORT keyState = GetKeyState(VK_CAPITAL/*(caps lock)*/);
bool isToggled = keyState & 1;
bool isDown = keyState & 0x8000;

それから、次のことも忘れないでください。

#include <Windows.h>