VC++6を使って簡単なプログラムをダイアログベース作っています。
内容はリストを読み込み、1件ずつDBにSQLを発行して情報を取得していくという内容です。
画面には、プログレスバーも設置しており、普通に操作すると正常に、プログレスバーも動きます。しかし、いったん別のウィンドウをアクティブにして、作成した動作中のプログラムを再選択しても、画面は壊れたまま再描画されません。しばらくまって、リストのSQL発行が終わって、画面に結果が表示されたら、きちんと再描画されます。
そこまで処理が終わったら、他のウィンドウに切り替えて戻ってきても画面が壊れることはありません。
時間がかかるプログラムなので、動作中に別の仕事をするため、アクティブでなくても、きちんとウィンドウを更新したいのです。
ちなみに、ループ処理中にRedrawWindow();を入れてみましたがダメでした。
アドバイスよろしくお願いします。
No.2ベストアンサー
- 回答日時:
★アドバイス
1.ループの中でメッセージを処理すれば良いでしょう。
2.スレッドを1つ用意してDBをここで読み込む。
1の方法が簡単なので下のソースでもループ中に入れれば良い。
サンプル:
MSG msg;
while ( PeekMessage(&msg,hDlg,0,0,PM_REMOVE) ){
TranslateMessage( &msg );
DispatchMessage( &msg );
}
※『hDlg』はダイアログのウインドウ・ハンドルです。
アドバイスありがとうございました。
無事解決いたしました。
しかし、マウスカーソルを砂時計にしていたのが元に戻ってしまいましたが・・・
とりあえず、プログレスバーを見れば作業中かどうかわかるので、一応解決いたしました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ソフトウェア) Figma 1 2023/06/23 14:22
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- Outlook(アウトルック) outlook メモリ不足 1 2022/05/31 10:16
- その他(OS) Windowsで大量の画像サイズを半自動で変更する方法 6 2023/02/17 08:45
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Windows 7 更新プログラムを入れたら操作出来なくなりました(泣) 1 2023/02/26 11:04
- 電子マネー・電子決済 QUICPayの登録ができない。 4 2023/06/10 10:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どなたかこのプログラミングを...
-
VBA for i=1 to lastrow
-
画面を強制的に再描画させる方法
-
エディットボックスのテキスト...
-
プログラミングについて。 1つ...
-
DOSコマンドのループ内のTIMEコ...
-
ボタンが押された時にループか...
-
19歳です 普段、動くことも人と...
-
Java 南京錠
-
Application->Run();の機能につ...
-
UWSCのスクリプトで行き詰って...
-
alarmの使用について
-
テキストボックスの名前に変数...
-
C言語 4) int 型配列 month を...
-
ループ内での条件処理
-
簡単なエクセルVBA
-
VB2010でCSVファイルの読み込み
-
GIFアニメをループさせたくない
-
メッセージループを調べすぎてC...
-
Do whileでExitせず、ループの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
-
VBA for i=1 to lastrow
-
「偶数・奇数の和」のフローチ...
-
アクティブセルから、A列最終行...
-
DoEventsが必要な理由について
-
vb.netからエクセル関数書き込み
-
GIFアニメをループさせたくない
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
流れ図(フローチャート)が分か...
-
乱数の桁数指定、または範囲指定。
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
-
vb.netです。2次元配列の要素を...
おすすめ情報