- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CListBoxでAddString等をすぐに反映)
CListBoxでのデータ反映についての質問
このQ&Aのポイント
- WindowsのVisualC++でダイアログベースのアプリを作っています。
- CListBoxのAddString等の処理を即座に反映させる方法を知りたいです。
- Invalidate(false)を試しましたが効果がありませんでした。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
効果は判りませんが、 m_listbox.UpdateWindow() を呼んでおくのは定石でしょう。 後は「長くかかる処理」をコマンドにしておいて、それに POST してみるのも有効かも知れません。
その他の回答 (1)
- Wr5
- ベストアンサー率53% (2173/4061)
回答No.1
そういう時間のかかる処理は、ワーカースレッドを作ってそちらで処理するべきです。 メッセージ処理を止めてしまうとウィンドウの移動も出来ませんし、 [中断]ボタンを実装してもボタンが押せません。 # ついでに処理に時間がかかりすぎるとOSから「(応答なし)」の烙印を押されます。 ワーカースレッドで処理する場合、同期処理などにご注意を。
質問者
お礼
それは考えましたが、めんどくさそうなので。 これはちゃんとしたソフトというより、ちょっと片手間に作ったソフトで、長くかかる処理実行中にはほかには何もしません。この処理をするためだけに作ったものです。 ウインドウもこのダイアログボックス1つだけのものです。 簡単にちゃちゃっと作るときに、なにかないのかな、と思って聴いてみました。 質問には省略しましたが、長くかかる処理中にも、区切りごとに、AddStringで進行状況を出したいと思っています。この進行状況がみたいのが、質問したほんとの理由です。
お礼
できました。 UpdateWindow()、完璧です!