Microsoft DirectX 8.0 (Visual Basic) |
DirectInputDevice8 を作成したら、デバイスのデータ形式を設定しなければならない。キーボードの場合は、その他の標準デバイスと同様に、非常に簡単なタスクである。DirectInputDevice8.SetCommonDataFormat メソッドを呼び出し、定数 DIFORMAT_KEYBOARD をパラメータとして使用して、Microsoft® DirectInput® が提供するデータ形式を指定する。バッファリング データを取得する場合でも、データ形式は設定しなければならない。
Call didev.SetCommonDataFormat(DIFORMAT_KEYBOARD)
DirectInput では、データ形式内のオフセットでデバイス オブジェクトを識別する。キーボードの場合、キーは DIKEYBOARDSTATE 型内のオフセットで識別される。
アプリケーションは、キーボードへのアクセス権を取得する前に、次のように DirectInputDevice8.SetCooperativeLevel メソッドを使用してデバイスの動作を設定しなければならない。
didev.SetCooperativeLevel Me.hWnd, _ DISCL_NONEXCLUSIVE Or DISCL_BACKGROUND
このメソッドは、デバイスに関連付けられたウィンドウのハンドルと、必要な協調レベルを示す 2 つのフラグ (DISCL_EXCLUSIVE と DISCL_NONEXCLUSIVE のいずれか、および DISCL_FOREGROUND と DISCL_BACKGROUND のいずれか) を受け取る。ただし、DirectInput はキーボード デバイスへの排他アクセスをサポートしないため、この例のように、キーボードでは常に DISCL_NONEXCLUSIVE フラグを使用する必要がある。
また、この例ではバックグラウンド協調レベルを設定し、フォームがフォアグラウンドにあるかどうかにかかわらず入力を受け付けるようにしている。キー ストロークは引き続き、フォーカスを持つアプリケーションに渡されることに注意すること。大部分のアプリケーションはバックグラウンドにある間に入力を受け付ける必要はない。また、そのような場合には、DISCL_FOREGROUND フラグを設定するべきである。
キーボード デバイスの作成と設定が終了したら、それを取得する必要がある。その方法については「ステップ 3 : キーボードのアクセス権の取得」で説明する。