1. ホーム
  2. c++

[解決済み] GetKeyState() の使用法

2022-02-19 22:26:32

質問

キーが押された時にブーリアンイベントがトグルするようにしたいです。具体的には、's'キーです。Win32のAPIで動作すると思われるGetKeyState()という関数を紹介されました。私は、文字's'のASCIIコードが115であることを理解しているので、私のコードは次のようになります。

if (GetKeyState(115) == 1)
{
<EVENT>
}

しかし、これではうまくいきません。なぜかというと、MSDNのリファレンスがあるからです。 http://msdn.microsoft.com/en-us/library/ms646301%28v=vs.85%29.aspx ... "下位ビットが1であれば、キーがトグルされます"。

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

私が理解したところでは、あなたはする必要があります。

if( GetKeyState(115) & 0x8000 )
{
    <EVENT>
}

最上位ビットは、キーが押されたかどうかを示します。最下位はキーがトグルされているかどうか(例えばcaps lockがオンになっているかどうか)を示します。