}コントロール変数m_PrgCtrl(CProgressCtrl型)のSetRange関数でプログレスバーの下限/上限を設定します。今回はマジックナンバーで【10,000,000】と記載していますが、定数を利用したり、ファイル走査などであれば総ファイル数を指定するなどが考えられます。lParam);}WindowProc関数ではウィンドウハンドルが作成されていれば、OnInitDialog関数で設定した上限と別スレッドでインクリメントされ続けているカウンター変数を比較し、まだ上限に達していなければ進行状況バーを更新します。上限に達している場合はWM_CLOSEをポストし、ダイアログを閉じるように指示しています。ウィンドウハンドルが作成されているかどうかの確認をしない場合は、実行時エラーが表示されます。これはWindowProc関数内で比較などをしているためです。MSDNさて、これでようやく完成です。実行してみると確かに少しずつプログレスバーがカウンタの値によって増加されているのが分かるかと思います。問題点さて、これまでの流れでプログレスバーをマルチスレッドで実装することはできました。各所で見られたように問題点も多いです。スレッドで実行する処理が、プログレスバーを表示するダイアログ作成前に完了する。ThreadProc(void)を何も処理しないようにするとダイアログ生成よりも早くスレッドが閉じられ意図しない動作になるでしょう。他にもマジックナンバーを埋め込んでいたり、色々問題点がありました。C++などの書籍を購入し、セマフォなども含めて学習の必要がありそうです。まとめ短いプログラムでしたがスレッドの生成について確認してみました。今回紹介した方法は【ワーカースレッド】を用いた方法で実装しました。実際に運用する場合には専用の関数を用意するなど、より堅牢なプログラムを行う必要がありそうです。その2昨日に続き、プログレスバーをマルチスレッドを用いて実装してみましょう。スレッド実行中はモーダルダイアログを表示させること。...C++でインターフェイスを作成しよう。私事ですが今後業務ではC++を使用することになりそうです。C++】ファイル操作を行うツールなどを作成する際には、ファイルをドラッグアンドドロップできると便利です。C++】フルパスを指定してフォルダー階層を作成する。C++】Windowsのアプリ開発で最もポピュラーな開発環境はやはりMFCでしょうか。