Platform SDK: DirectX |
ここでは、C および C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectDraw Visual Basic チュートリアル」を参照すること。
オーバーレイ サーフェスが必要なくなるか、または単にビューから削除したい場合は、該当するフラグを設定して IDirectDrawSurface7::UpdateOverlay メソッドを呼び出すと、サーフェスを隠蔽できる。Mosquito では、アプリケーションを閉じることに備えてオーバーレイを隠蔽する。次にこのコードを示す。
void DestroyOverlay() { if (g_lpddsOverlay){ // UpdateOverlay() に DDOVER_HIDE フラグを使用して // オーバーレイをディスプレイから削除する。 g_lpddsOverlay->UpdateOverlay(NULL, g_lpddsPrimary, NULL, DDOVER_HIDE, NULL); g_lpddsOverlay->Release(); g_lpddsOverlay=NULL; } }
上記の例で IDirectDrawSurface7::UpdateOverlay を呼び出す場合、オーバーレイの隠蔽には無関係なため、転送元および転送先矩形は NULL を指定する。同様に、5 番目のパラメータも、オーバーレイ エフェクトを使用しないために NULL とする。2 番目のパラメータは、ターゲット サーフェスへのポインタとなる。最後に、オーバーレイがビューから削除されることを示すために、4 番目のパラメータに DDOVER_HIDE フラグを使用する。
オーバーレイを隠蔽した後、この例では IDirectDrawSurface7 インターフェイスを解放し、NULL に設定することでそのグローバル変数を無効にする。Mosquito サンプル アプリケーションでは、オーバーレイ サーフェスはもはや必要ではない。後でオーバーレイ サーフェスが必要になることがあれば、オーバーレイを解放せずに単に隠蔽しておき、必要に応じて再表示すればよい。