ファイルの読み込み待ちなど、進捗を表示しないと、まるでツールがフリーズしたかのようになります。
これは良くない。進捗を教えてくれるプログレスバーを追加してみましょう。
で、どうやって?
まずはリソースビューからダイアログのフォルダを選び、ダイアログを挿入します。
あとは、思いのままにコントロールをツールボックスから貼り付けます。
簡単ですね。
レイアウトを決めたらコンテキストメニューからクラスを追加してください。
(あとで配置とか変えられるのでこの時点で厳密に決める必要はないです。)
そうしたらコントロールを選択してコンテキストメニューからそれぞれ変数を追加してください。
え!?メンバ変数の追加のウィザードが立ち上がらない?
そんな時は、簡単なMFCアプリを作りそちらでダイアログクラスを作成し
できたコードのファイルをそっくりコピーして使いまわします。
プロジェクトフォルダの.ncbファイルを削除してうまくいくかと試しましたがダメでした。
resource.h ファイルの場所をプロジェクトフォルダに移動させるとうまくいく、かも?
(こちらも確かな情報ではないです。)
ダイアログクラスのコードファイルができましたら、みなさんのコーディング規約に従い修正してください。
Simplestarが作成したヘッダーファイルがこちら↓
ソースファイルがこちら↓
さて、ダイアログを表示するには次のように Create を呼ぶだけです。
あとは進捗バーなどのコントロールを更新するための設定関数を用意してあげるだけですね。
実際に動作確認できたクラスの定義と実装を次に示します。
更新機能を追加したヘッダーファイル↓
更新機能を追加したソースファイル↓
実行結果がこちらになります。
実は今のままだと読み込み中に他の作業ができません。
この問題を解決するには読み込み処理を別スレッドで行わせる必要があります。
MFCでマルチスレッドを使う方法について次のTipsにまとめたので参考にしてみてください。
以上です。
2011/06/19 最終更新