Platform SDK: DirectX |
ここでは、C++ でのアプリケーション開発について説明する。
デバイス ウィンドウを設定するには、2 通りの方法がある。
次の例では、lpDD が現す DirectDraw オブジェクトに対する既存のデバイス ウィンドウを設定する。
/* lpDD が有効な IDirectDraw インターフェイス ポインタであり、 hWnd が適切なデバイス ウィンドウへのハンドルであると仮定する。 */ HRESULT hr = lpDD->SetCooperativeLevel( hWnd, DDSCL_SETDEVICEWINDOW | DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
次の例では、DirectDraw が作成したデフォルトのデバイス ウィンドウを設定する。この場合、hWnd は既存のフォーカス ウィンドウへのハンドルとなる。
HRESULT hr = lpDD->SetCooperativeLevel( hWnd, DDSCL_CREATEDEVICEWINDOW | DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
フォーカス ウィンドウはデバイス ウィンドウではないが、SetCooperativeLevel の呼び出しでフォーカス ウィンドウとデバイス ウィンドウの両方としてウィンドウを設定できない。最初にフォーカス ウィンドウとして設定してから、デバイス ウィンドウとして設定する。ただし、同じデバイス上のフォーカス ウィンドウとデフォルトのデバイス ウィンドウは、SetCooperativeLevel の呼び出しで設定できる。次の例でこの方法について示す。
HRESULT hr = lpDD->SetCooperativeLevel( hwndFocus, DDSCL_SETFOCUSWINDOW | DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE | DDSCL_CREATEDEVICEWINDOW);
この例では、既存のウィンドウ (おそらくアプリケーション ウィンドウ) がフォーカス ウィンドウとして設定され、DirectDraw がデフォルトのデバイス ウィンドウを作成する。