※ ChatGPTを利用し、要約された質問です(原文:CListBoxでAddString等をすぐに反映)
CListBoxでのデータ反映についての質問
このQ&Aのポイント
WindowsのVisualC++でダイアログベースのアプリを作っています。
CListBoxのAddString等の処理を即座に反映させる方法を知りたいです。
Invalidate(false)を試しましたが効果がありませんでした。
CListBoxでAddString等をすぐに反映
WindowsのVisualC++です。
ダイアログベースで作っています。
この中でたとえば、
OnButtonXXX()
というボタンを押したときに動くサブルーチンがあったとして、
OnButtonXXX()
{
m_listbox.ResetContents();
m_listbox.AddString( "begin" );
m_listbox.AddString( "working..." );
ポイントA
長くかかる処理
m_listBox.AddString( "end処理");
m_listbox.ResetContents();
m_listbox.AddString( 結果ずらっと )
}
みたいなルーチンを作ると、残念ながら、長くかかる処理が終ってからまとめてリストボックスに反映されて、
処理中に begin, working... 等をリストボックス内に表示させてユーザーに知らせるということが出来ません。
上記ポイントAに、何か、CWndとか上位のクラスの何かを書いて反映させるとかできないでしょうか。
あるいは、CListBoxのクラスメンバに描画関数とかありますか。
ちなみに、ポイントAに
Invalidate(false);
を置いてもダメでした。
お礼
できました。 UpdateWindow()、完璧です!