• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CListBoxでAddString等をすぐに反映)

CListBoxでのデータ反映についての質問

このQ&Aのポイント
  • WindowsのVisualC++でダイアログベースのアプリを作っています。
  • CListBoxのAddString等の処理を即座に反映させる方法を知りたいです。
  • Invalidate(false)を試しましたが効果がありませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • davidfox
  • ベストアンサー率58% (21/36)
回答No.2

効果は判りませんが、 m_listbox.UpdateWindow() を呼んでおくのは定石でしょう。 後は「長くかかる処理」をコマンドにしておいて、それに POST してみるのも有効かも知れません。

chachakabu
質問者

お礼

できました。 UpdateWindow()、完璧です!

その他の回答 (1)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

そういう時間のかかる処理は、ワーカースレッドを作ってそちらで処理するべきです。 メッセージ処理を止めてしまうとウィンドウの移動も出来ませんし、 [中断]ボタンを実装してもボタンが押せません。 # ついでに処理に時間がかかりすぎるとOSから「(応答なし)」の烙印を押されます。 ワーカースレッドで処理する場合、同期処理などにご注意を。

chachakabu
質問者

お礼

それは考えましたが、めんどくさそうなので。 これはちゃんとしたソフトというより、ちょっと片手間に作ったソフトで、長くかかる処理実行中にはほかには何もしません。この処理をするためだけに作ったものです。 ウインドウもこのダイアログボックス1つだけのものです。 簡単にちゃちゃっと作るときに、なにかないのかな、と思って聴いてみました。 質問には省略しましたが、長くかかる処理中にも、区切りごとに、AddStringで進行状況を出したいと思っています。この進行状況がみたいのが、質問したほんとの理由です。

関連するQ&A