処理中の画面フリーズを防ぐには?

解決


TM  2004-09-23 00:54:28  No: 54531  IP: [192.*.*.*]

毎回お世話になっています。

VC6、MFCダイアログベースでの製作です。

外付けハードディスク(iPod)内にある複数のファイル(MP3)をPCにコピーする処理を書いているのですが、コピー中にダイアログ画面がフリーズします。

CopyFile()を用いてコピーし、コピーのファイル数の進行状況をプログレスバーに表示させています。初めの2、3個のファイルコピーまでは正しく、ダイアログが表示されているのですが、それ以降プログレスバーが進行せず、メニュー部分が真っ白になります。しかし、時間が経つと、処理が終わり正しくコピーされています。

CopyFile();
m_prog.StepIt();

をファイル数分だけ繰り返しています。この現象を防ぐことはできないでしょうか?

編集    削除
たく  2004-09-23 01:48:45  No: 54532  IP: [192.*.*.*]

処理中にメッセージポンプを入れると回避できるかもしれません。

編集    削除
Ban  2004-09-23 02:07:17  No: 54533  IP: [192.*.*.*]

もしくは、コピー部分とUI用のメッセージポンプを別スレッド化?

編集    削除
TM  2004-09-23 02:42:52  No: 54534  IP: [192.*.*.*]

ご返答ありがとうございます。

メッセージポンプで解決できたみたいです。
50個のMP3ファイルをコピーしても問題なく
表示できています。

ありがとうございました。

編集    削除