掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DirectShowのフルスクリーン表示について (ID:55564)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
2Dの簡単なゲームを作っています。 プログラム実行時、DirectShowを使ってムービーを再生してからスタート画面を表示させるようにしました。 ムービーの再生は、ビデオ・レンダリング・フィルタが作成するウィンドウを、ゲームウィンドウの子ウィンドウに設定して行っています。 ウィンドウ・モードでは正常にムービーが再生され、再生が停止したらスタート画面(ただのビットマップ画像)が表示されます。 しかし、ウィンドウモードをFALSE(フルスクリーン・モード)にすると、次のような動作をしてしまいます。 1、ゲームプログラムを実行する 2、フルスクリーン・モードになり、ムービーが再生される 3、ムービーが停止すると、フルスクリーン・モードが解除され、ゲームウィンドウが最小化されてしまう この後、最小化されたウィンドウをクリックすると、フルスクリーン・モードに切り替わり、ゲーム画面が表示されます。 いろいろ試してみたところ、ムービーが終了した後のDirectShow関係の開放処理を行っているのですが、ここで、 put_Owner(NULL) を実行してしまうと、ウィンドウが最小化されてしまうことが分かりました。 ムービーの再生はゲーム開始時だけではなく、スタート画面で一定時間経過したらデモムービーを流したり、ゲーム中にムービーを流したりといった感じで、複数のムービーファイルを使うことを考えています。 よって、ムービーは再生する際にオブジェクトを宣言し、再生が終わったら全て開放するようにしています。 よって、DirectShow関係のオブジェクトをRelease()してから put_Visible(OAFALSE)とput_Owner(NULL)を実行しているのですが、フルスクリーンの場合はput_Owner(NULL)を実行してはいけないのでしょうか? それとも、フルスクリーン・モードを解除させない別の方法があるのでしょうか? 何か情報がありましたら、是非教えてください。 よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.