ホーム > DirectInput > 直接データでキーボードの状態を取得

直接データでキーボードの状態を取得

目次

  1. 初期化
  2. デバイスの状態を取得
  3. 終了処理
  4. 最後に

初期化

共通の処理DirectInput8オブジェクトの作成からアクセス権の取得と同じ処理をします。デバイス作成では「GUID_SysKeyboard」を指定します。

LPDIRECTINPUTDEVICE8 g_lpDIDevice = NULL;
g_lpDI->CreateDevice( GUID_SysKeyboard, &g_lpDIDevice, NULL );

デバイスの状態を取得

符号なし256バイトの配列を渡して取得します。この配列にはキーボードデバイス定数の状態が格納されていて、キーが押されたときに最上位ビットが1になります。たとえばアルファベットの「A」が押されているか判定するには下記のようにします。

// キーボードの状態を取得
BYTE byKeyState[256];
g_lpDIDevice->GetDeviceState( 256, byKeyState );

// Aが押されているか
if( byKeyState[DIK_A] & 0x80 )
{
  // 押されている
}

終了処理

共通の処理 / 終了処理と同じ処理をします。

最後に

ここまでの手順でキーボードの状態を直接データで取得できます。使用例のサンプルを置いておきます。



inserted by FC2 system