Platform SDK: DirectX

デバイス ウィンドウの設定

[Visual Basic]

ここでは、C++ でのアプリケーション開発について説明する。

[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 がデフォルトのデバイス ウィンドウを作成する。