ページ 11

ウィンドウ消去後再ウィンドウ作成で前ウィンドウが残ってしまう

Posted: 2011年8月04日(木) 20:53
by 史上最悪のデスペナ
Windows7のVidual C++ 2010 Express EditionでDxLib使用しています
プログラムの概要は

500×300のウィンドウ作成(多重起動許可、非アクティブ時(最小化など)もアクティブ(ゲーム進行)にする)
→DxLib初期化
→サーバーへ通信
→バージョンチェック
→何らかの結果を受信し、それをDrawstring(http://homepage2.nifty.com/natupaji/DxL ... html#R17N1)で描画
→何らかのキーが押されるまで待機
→押されたらSetGraphMode(http://homepage2.nifty.com/natupaji/DxL ... .html#R4N1)で800×600に変更
→DxLib初期化
→3Dモデルなど読み込み

とやると、3Dモデルなど読み込み期間に前のウィンドウの枠跡が白く残ってしまいます。どうしたらいいでしょうか?

Re: ウィンドウ消去後再ウィンドウ作成で前ウィンドウが残ってしまう

Posted: 2011年8月04日(木) 21:59
by ISLe
定期的にProcessMessage関数を呼び出すようにすると良いと思います。

Re: ウィンドウ消去後再ウィンドウ作成で前ウィンドウが残ってしまう

Posted: 2011年8月04日(木) 22:19
by 史上最悪のデスペナ
自作関数ごとではだめだったので一行毎に入れてみてもだめでした・・・・・・orz

Re: ウィンドウ消去後再ウィンドウ作成で前ウィンドウが残ってしまう

Posted: 2011年8月05日(金) 12:36
by ookami
ProcessMessage()でいけると思うのですが、念のため、
  ProcessMessage();
  Sleep(1);
などすると変わりませんか?もちろんその分時間はかかりますが...

あと、多くのアプリケーションで、高負荷時には画面が更新されない、というのはよくあることですから、
数秒フリーズする程度なら諦めるのも手だと思いますよ。

Re: ウィンドウ消去後再ウィンドウ作成で前ウィンドウが残ってしまう

Posted: 2011年8月05日(金) 22:41
by ISLe
クライアント領域にデスクトップ(の一部)が残るってことですかね。

そうであれば、ClearDrawScreenを呼び出せばクリアされるのではないでしょうか。
裏画面に描画する設定になっていたらScreenFlipも。

Re: ウィンドウ消去後再ウィンドウ作成で前ウィンドウが残ってしまう

Posted: 2011年8月08日(月) 08:18
by 史上最悪のデスペナ
ClearDrawScreenはだめでした
ScreenFlipは多少ましになる程度ですね
あきらめたほうがいいでしょうかね?

Re: ウィンドウ消去後再ウィンドウ作成で前ウィンドウが残ってしまう

Posted: 2011年8月08日(月) 17:53
by ISLe
質問に書かれている『→DxLib初期化』というのはDxLib_Init関数を呼び出すということですよね。
DXライブラリがDxLib_Initの多重呼び出しを想定した作りになっていないのではないでしょうか。

Re: ウィンドウ消去後再ウィンドウ作成で前ウィンドウが残ってしまう

Posted: 2011年8月09日(火) 12:24
by 史上最悪のデスペナ
そうです
一個にしてみても変わりませんでした
Windows7でVC++EEを使ってますが・・・
あきらめます
ありがとうございました