掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ダイアログの表示、非表示に行う処理(少し時間のかかる)について (ID:70344)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
MFCでダイアログアプリを作成しています。 ダイアログ内に子ダイアログを複数作成して 子ダイアログの表示を切り替え、画面の変更を行っています。 子ダイアログの表示(ShowWindow(SW_SHOW))時に、 ログデータを読み込み、それを表示する処理を行いたいと思います(一例) ログのデータサイズが膨大のことを考え、今まではワーカースレッドで読み込み作業を行っていました。 これを、もう少し簡単に改良できないかと思い。 ダイアログ表示時のOnShowWindow()内でログを読み込み、 他のメッセージ処理を行いながら、ログの表示処理を行えないかと以下のイメージ(大まかな)で記述しました。 この場合、CDialog::OnShowWindow(bShow, nStatus) では、画面の表記が終わっていないのか、 CHogeDlg::OnShowWindow()が終わるまで、画面には何も表示されませんでした。 この処理(ログ読み込み)を行う適切な場所、OnShowWindow()の直後(画面表示後)に呼ばれるイベントハンドラなどがありましたら 教えていただけないでしょうか? 長文で失礼しました。 void CHogeDlg::OnShowWindow(BOOL bShow, UINT nStatus) { CDialog::OnShowWindow(bShow, nStatus); //表示 if( bShow ) { for(・・・・) { //ここに時間がかかる処理を分割して記述 //その他メッセージ処理 while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } } } //その他処理 }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.