MFC アプリケーションの作成手順

次の表は、MFC アプリケーションを開発する際に通常従う必要がある一般的な手順を示しています。

フレームワークを使用したアプリケーションの作成手順

タスク ユーザーの作業 フレームワークの作業
スケルトン アプリケーションを作成する。 MFC アプリケーション ウィザードを実行します。 オプション ページで、必要なオプションを指定します。 オプションには、アプリケーションを COM コンポーネントかコンテナー、またはその両方にするもの、Automation を追加するもの、アプリケーションをデータベース対応にするものなどがあります。 MFC アプリケーション ウィザードでは、スケルトン アプリケーションのファイルが作成されます。これには、アプリケーション、ドキュメント、ビュー、フレーム ウィンドウのソース ファイル、リソース ファイル、プロジェクト ファイルなどが含まれ、いずれも仕様に合わせて調整されています。
独自のコード行を追加せずに、フレームワークと MFC アプリケーション ウィザードに用意されている機能を確認する。 スケルトン アプリケーションをビルドし、Visual C++ で実行します。 実行中のスケルトン アプリケーションでは、[ファイル][編集]、[[表示][ヘルプ] メニューの各標準コマンドが、フレームワークから派生します。 MDI アプリケーションの場合は、完全に機能する Windows メニューも利用することができ、フレームワークでは MDI 子ウィンドウの作成、配置、および破棄が管理されます。
アプリケーションのユーザーインターフェイスを構築する。 Visual C++ リソース エディターを使用して、アプリケーションのユーザー インターフェイスを視覚的に編集します。

- メニューの作成。
- アクセラレータの定義。
- ダイアログ ボックスの作成。
- ビットマップ、アイコン、カーソルを作成して編集します。
- MFC アプリケーション ウィザードで作成されたツール バーの編集。
- その他のリソースの作成と編集。

ダイアログ エディターでダイアログ ボックスをテストすることもできます。
MFC アプリケーション ウィザードによって作成された既定のリソース ファイルには、必要なリソースが多数用意されています。 Visual C++ を使用すると、既存のリソースを編集したり、新しいリソースを簡単かつ視覚的に追加したりできます。
メニューをハンドラー関数にマップする。 クラス ビュー[プロパティ] ウィンドウ[イベント] ボタン (またはクラス ウィザード[コマンド] タブ) を使用すると、メニューやアクセラレータをコード内のハンドラー関数に接続できます。 これらのツールは、指定されたソース ファイルにメッセージマップ エントリと空の関数テンプレートを挿入し、多くの手動コーディング タスクを管理します。
ハンドラーコードを記述する。 ソース コード エディターのコードに直接移動するには、クラス ビューを使用します。 ハンドラー関数のコードを入力します。 クラス ビューの使用方法と、プロジェクトにコードを追加するウィザードの詳細については、「コード ウィザードを使用した機能の追加」を参照してください。 クラス ビューにより、エディターが開き、空の関数テンプレートまでスクロールされ、カーソルが移動します。
ツール バーのボタンをコマンドにマップする。 ツール バーの各ボタンに適切なコマンド ID を割り当てることで、そのボタンをメニューまたはアクセラレータのコマンドにマップします。 フレームワークは、ツール バー ボタンの描画、有効化、無効化、チェック、およびその他の視覚的な側面を制御します。
ハンドラー関数をテストする。 プログラムをリビルドし、組み込みのデバッグ ツールを使用して、ハンドラーが正しく動作することをテストします。 コードをステップ実行またはトレースすることで、ハンドラーがどのように呼び出されるかを確認できます。 ハンドラー コードを入力すると、ハンドラーがコマンドを実行します。 フレームワークは、処理されないメニュー項目とツール バー ボタンを自動的に無効にします。
ダイアログ ボックスを追加する。 ダイアログ エディターを使用してダイアログ テンプレート リソースをデザインします。 次に、ダイアログ ボックスを処理するダイアログ クラスとコードを作成します。 フレームワークはダイアログ ボックスを管理し、ユーザーが入力した情報の取得を容易にします。
ダイアログ ボックスのデータを初期化、検証、および取得する。 ダイアログ ボックスのコントロールを初期化および検証する方法を定義することもできます。 Visual Studio を使用して、ダイアログ クラスにメンバー変数を追加し、それをダイアログ コントロールにマップします。 ユーザーがデータを入力するたびに、各コントロールに適用される検証規則が指定されます。 必要に応じて、独自のカスタム検証を提供します。 フレームワークは、ダイアログ ボックスの初期化と検証を管理します。 ユーザーが無効な情報を入力すると、フレームワークによってメッセージ ボックスが表示され、ユーザーがデータを再入力できるようになります。
追加のクラスを作成する。 クラス ビューを使用すると、MFC アプリケーション ウィザードによって自動的に作成されたもの以外の、追加のドキュメント、ビュー、およびフレームウィンドウ クラスを作成できます。 追加のデータベース レコードセット クラスやダイアログ クラスなどを作成できます (クラス ビューを使用すると、MFC クラスから派生していないクラスを作成できます)。 クラス ビューは、これらのクラスをソース ファイルに追加できるので、それらによって処理されるあらゆるコマンドへの接続を定義するのに役立ちます。
すぐに使用できるコンポーネントをアプリケーションに追加する。 New Item dialog box を使用して、さまざまな項目を追加します。 これらの項目は、アプリケーションに簡単に統合できるため、作業負荷を大幅に減らすことができます。
ドキュメント クラスを実装する。 アプリケーション固有のドキュメント クラスを実装します。 データ構造を保持するメンバー変数を追加します。 データ用のインターフェイスを提供するメンバー関数を追加します。 フレームワークでは、ドキュメント データ ファイルを操作する方法が既に認識されています。 ドキュメント ファイルを開いたり閉じたりすること、ドキュメント データの読み取りと書き込み、他のユーザー インターフェイスの処理を行うことができます。 ドキュメントのデータの操作方法に注目できるようになります。
[開く]、[保存]、[名前を付けて保存] コマンドを実装する。 ドキュメントの Serialize メンバー関数のコードを記述します。 フレームワークでは、[ファイル] メニューの [開く][保存][名前を付けて保存] コマンドのダイアログ ボックスが表示されます。 Serialize メンバー関数で指定されたデータ形式を使用して、ドキュメントを読み書きします。
ビュー クラスを実装する。 ドキュメントに対応する 1 つ以上のビュー クラスを実装します。 クラス ビューを使用してユーザー インターフェイスにマップしたビューのメンバー関数を実装します。 CListViewCTreeView など、さまざまな CView 派生クラスを使用できます。 フレームワークは、ドキュメントとそのビューの関係のほとんどを管理します。 ビューのメンバー関数は、ビューのドキュメントにアクセスして、画面または印刷ページに画像を表示したり、ユーザーの編集コマンドに応じてドキュメントのデータ構造を更新したりします。
既定の印刷を強化する。 複数ページ印刷をサポートする必要がある場合は、ビューのメンバー関数をオーバーライドします。 フレームワークでは、[ファイル] メニューの [印刷][ページ設定][印刷プレビュー] の各コマンドがサポートされています。 ドキュメントを複数のページに分割する方法を指定する必要があります。
スクロールを追加する。 スクロールをサポートする必要がある場合は、CScrollView からビュー クラスを派生させます。 ビュー ウィンドウが小さくなりすぎると、ビューに自動的にスクロール バーが追加されます。
フォーム ビューを作成する。 ダイアログテンプレート リソースに基づいてビューを作成する場合は、CFormView からビュー クラスを派生させます。 ビューは、ダイアログテンプレート リソースを使用してコントロールを表示します。 ユーザーは、コントロールからコントロールへと Tab キーで移動できます。
データベース フォームを作成する。 フォームベースのデータアクセス アプリケーションが必要な場合は、CRecordView (ODBC プログラミングの場合) からビュー クラスを派生させます。 ビューはフォーム ビューのように動作しますが、そのコントロールは、データベース テーブルを表す CRecordset オブジェクトのフィールドに接続されています。 MFC では、コントロールとレコードセットの間でデータを移動します。
単純なテキスト エディターを作成する。 ビューを単純なテキスト エディターにする場合は、CEditView または CRichEditView からビュー クラスを派生させます。 ビューには、編集機能、クリップボードのサポート、およびファイルの入出力の機能が備わっています。 CRichEditView はスタイル設定されたテキストを提供します。
分割ウィンドウを追加する。 ウィンドウの分割をサポートする場合は、CSplitterWnd オブジェクトを SDI フレーム ウィンドウまたは MDI 子ウィンドウに追加し、ウィンドウの OnCreateClient メンバー関数にフックします。 フレームワークは、スクロール バーの横にスプリッターボックス コントロールを提供し、ビューを複数のペインに分割して管理します。 ユーザーがウィンドウを分割すると、フレームワークによって追加のビュー オブジェクトが作成され、ドキュメントにアタッチされます。
アプリケーションをビルド、テスト、およびデバッグする。 Visual C++ の機能を使用して、アプリケーションをビルド、テスト、およびデバッグします。 Visual C++ を使用することで、コンパイル、リンク、およびその他のオプションを調整できます。 また、ソース コードとクラスの構造を参照することもできます。

関連項目

OLE アプリケーションの作成手順
ActiveX コントロールの作成手順
データベース アプリケーションの作成手順
フレームワークを使ったアプリケーションの作成