MFCでファイル読み込み中に「ファイル読み込み中」と表示するウィンドウまたはダイアログを作成する方法を教えて下さい。
調べてみると関数がAfxBeginThread()やCreateThread()などあって、どれを使えば良いかわかりません。
同じようなwebページのリンクでも構いませんので、ご存じでしたら教えてください。
イメージは以下の通りです。
ファイル読み込み関数 { ファイル読み込み開始 ファイル読み込みスレッド生成(ウィンドウ表示) 〜ファイル読み込み処理〜 ファイル読み込み終了 ファイル読み込みスレッド終了(ウィンドウ削除) return; }
void dlg::FileLoadingThread() { //何もしない } void dlg::FileLoad() { DWORD id; //コンパイルエラー //overloaded - functionからLPTHREAD_START_ROUTINEに変換できない HANDLE thread = CreateThread(0,0,(LPTHREAD_START_ROUTINE)FileLoadingThread, this, 0, &id); }
既に回答をいただいていますが、MFCを使う場合はAfxBeginThread一択です。
https://docs.microsoft.com/ja-jp/cpp/parallel/multithreading-with-cpp-and-mfc?view=msvc-160
CreateThreadと_beginthreadexの利用は考える必要ありません。どうしてもスレッドを使わなければいけないのでしょうか。
巨大なファイルであったり、読み込みに時間のかかる処理が伴わないのであれば、モーダル、またはモードレスダイアログのプロシージャ内で少しずつ読むなどすれば充分な場合もあります。ファイルによっては読む方が早すぎて、「ロード中」などの表示を実際より長く表示させる必要があったりします。
回答2件
あなたの回答
tips
プレビュー