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.GetDeviceStateMouse メソッドからの DIERR_INPUTLOST の戻り値をチェックして、必要に応じてマウスを再取得する必要がある (「デバイスの取得」を参照すること)。

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