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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
史上最悪のデスペナ
記事: 521
登録日時: 14年前

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

#1

投稿記事 by 史上最悪のデスペナ » 14年前

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モデルなど読み込み期間に前のウィンドウの枠跡が白く残ってしまいます。どうしたらいいでしょうか?

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

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

#2

投稿記事 by ISLe » 14年前

定期的にProcessMessage関数を呼び出すようにすると良いと思います。

史上最悪のデスペナ
記事: 521
登録日時: 14年前

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

#3

投稿記事 by 史上最悪のデスペナ » 14年前

自作関数ごとではだめだったので一行毎に入れてみてもだめでした・・・・・・orz

アバター
ookami
記事: 214
登録日時: 15年前
住所: 東京都

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

#4

投稿記事 by ookami » 14年前

ProcessMessage()でいけると思うのですが、念のため、
  ProcessMessage();
  Sleep(1);
などすると変わりませんか?もちろんその分時間はかかりますが...

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

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

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

#5

投稿記事 by ISLe » 14年前

クライアント領域にデスクトップ(の一部)が残るってことですかね。

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

史上最悪のデスペナ
記事: 521
登録日時: 14年前

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

#6

投稿記事 by 史上最悪のデスペナ » 14年前

ClearDrawScreenはだめでした
ScreenFlipは多少ましになる程度ですね
あきらめたほうがいいでしょうかね?

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

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

#7

投稿記事 by ISLe » 14年前

質問に書かれている『→DxLib初期化』というのはDxLib_Init関数を呼び出すということですよね。
DXライブラリがDxLib_Initの多重呼び出しを想定した作りになっていないのではないでしょうか。

史上最悪のデスペナ
記事: 521
登録日時: 14年前

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

#8

投稿記事 by 史上最悪のデスペナ » 14年前

そうです
一個にしてみても変わりませんでした
Windows7でVC++EEを使ってますが・・・
あきらめます
ありがとうございました

閉鎖

“C言語何でも質問掲示板” へ戻る