次の方法で共有


キーボードの直接データ

キーボードの直接データ

キーボードの現在の状態を取得するには、戻り値データを保持する 256 バイトの配列へのポインタを指定して、IDirectInputDevice8::GetDeviceState メソッドを呼び出す。

IDirectInputDevice8::GetDeviceState メソッドは、Microsoft® Win32® GetKeyboardState 関数と同様に動作する。GetDeviceState メソッドは、キーボードの現在の状態のスナップショットを返す。各キーは、256 バイトの配列内の 1 バイトによって表される。配列のアドレスは、lpvData パラメータとして渡されたものである。バイトの上位ビットが設定されていると、キーはダウン状態にある。配列は最も便利なように、Microsoft® DirectInput® キーボード デバイス定数によりインデックスが付けられている (「キーボード データの解釈」も参照すること)。

以下のコードは、Esc キーの押し下げに応じて関数を呼び出す例である。ここで、lpdiKeyboard は、取得された DirectInput デバイスを表す。

BYTE  diKeys[256]; 
if (lpdiKeyboard->GetDeviceState(256, diKeys) == DI_OK) 
{ 
  if (diKeys[DIK_ESCAPE] & 0x80) DoSomething(); 
}