Platform SDK: DirectX

消失したキーボード入力の確認

[C++]

協調レベルを DISCL_FOREGROUND に設定した状態で、フォーカスがほかのアプリケーションに切り替わる場合、Windows がアプリケーションにキーボードを強制的に解放させることがあるので、IDirectInputDevice7::GetDeviceData メソッドまたは IDirectInputDevice7::GetDeviceState メソッドからの DIERR_INPUTLOST 戻り値をチェックして、必要に応じてキーボードを再取得する必要がある (「デバイスの取得」を参照すること)。

 :  DIERR_NOTACQUIRED エラーを受け取った場合には、キーボードの再取得を試みないようにする必要がある。そうしないと、無限ループに入るおそれがある。取得は失敗し、DIERR_NOTACQUIRED エラーを受け取るという繰り返しが永遠に続く。

[Visual Basic]

協調レベルを DISCL_FOREGROUND に設定した状態で、フォーカスがほかのアプリケーションに切り替わる場合、Windows がアプリケーションにキーボードを強制的に解放させることがあるので、DirectInputDevice.GetDeviceData メソッドまたは DirectInputDevice.GetDeviceStateKeyboard メソッドからの DIERR_INPUTLOST 戻り値をチェックして、必要に応じてキーボードを再取得する必要がある (「デバイスの取得」を参照すること)。

 :  DIERR_NOTACQUIRED エラーを受け取った場合には、キーボードの再取得を試みないようにする必要がある。そうしないと、無限ループに入るおそれがある。取得は失敗し、DIERR_NOTACQUIRED エラーを受け取るという繰り返しが永遠に続く。