Platform SDK: DirectX

マルチ モニタの DirectDraw オブジェクト

[Visual Basic]

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

[C++]

ヌルやデフォルトのディスプレイ ドライバに対して記述された DirectDraw のウィンドウ アプリケーションは、MultiMon 上で機能する。しかし、MultiMon のために最適化されるアプリケーションでは、列挙コールバックに返される GUID を使用し、各デバイスに対して別の DirectDraw オブジェクトを作成する (「MultiMon システムにおけるデバイスの列挙」を参照すること)。

DirectDraw オブジェクトの作成時にアプリケーションで GUID を指定したか NULL を指定したかによって、MultiMon の動作が変わる場合がある。最も分かりやすい例としては、アプリケーションで NULL を指定した場合、DirectDraw は常にカーソルをプライマリ モニタにクリップする。

MultiMon システム上で協調レベルを複数回設定することは避けること。フルスクリーンから一般的なモードに切り替えなくてはならない場合は、新しい DirectDraw オブジェクトを作成することが最善である。

ALT + TAB キーにアプリケーションを応答させるには、アプリケーションがデフォルトのウィンドウ プロシージャを使用しないようにする。この機能を利用するには、SETFOCUS メッセージを受け取るたびに、デバイス ウィンドウがフォーカスを親ウィンドウに変更しなければならない。

全 DirectDraw オブジェクトは同時に解放することを勧める。セカンダリ デバイスや複数のデバイスだけを解放する場合、プライマリ デバイスは元のデスクトップ モードに戻るが、タスクバーだけは再描画され、DirectDraw のプライマリ サーフェスは存在したままである。DirectDraw オブジェクトの解放およびそのオブジェクトの再作成を最初に行わないで、このサーフェスに描画することはできない。