ドキュメント テンプレートとドキュメントおよびビューの作成手順

関連するビューとフレーム ウィンドウがあるドキュメントを作成する複雑なプロセスを管理するために、フレームワークでは 2 つのドキュメント テンプレート クラスを使用します。SDI アプリケーションの場合は CSingleDocTemplate、MDI アプリケーションの場合は CMultiDocTemplate です。 CSingleDocTemplate は、一度に 1 つの種類の 1 つのドキュメントを作成して保存できます。 CMultiDocTemplate は、1 つの種類の開かれている多数のドキュメントの一覧を保持します。

いくつかのアプリケーションでは、複数の種類のドキュメントがサポートされています。 たとえば、アプリケーションでテキスト ドキュメントとグラフィックス ドキュメントがサポートされる場合があります。 このようなアプリケーションでは、ユーザーが [ファイル] メニューの [新規] コマンドを選択すると、ダイアログ ボックスに、開くことのできる新しいドキュメントの種類の一覧が表示されます。 サポートされているドキュメントの種類ごとに、アプリケーションは個別のドキュメント テンプレート オブジェクトを使用します。 次の図は、2 種類のドキュメントをサポートし、いくつかの開かれているドキュメントを表示する MDI アプリケーションの構成を示しています。

Diagram of an MDI application that has two document types.
2 つのドキュメント タイプをサポートする MDI アプリケーション

ドキュメント テンプレートは、アプリケーション オブジェクトによって作成および管理されます。 アプリケーションの InitInstance 関数で実行される主なタスクの 1 つは、適切な種類の 1 つ以上のドキュメント テンプレートを作成することです。 この機能については、「ドキュメント テンプレートの作成」で説明されています。 アプリケーション オブジェクトは、テンプレートの一覧に各ドキュメント テンプレートへのポインターを格納し、ドキュメント テンプレートを追加するためのインターフェイスを提供します。

2 つ以上のドキュメントの種類をサポートする必要がある場合は、ドキュメントの種類ごとに AddDocTemplate の呼び出しを追加する必要があります。

アプリケーションのドキュメント テンプレート一覧での位置に基づいて、各ドキュメント テンプレートに対してアイコンが登録されます。 ドキュメント テンプレートの順序は、AddDocTemplate の呼び出しによって追加された順序によって決まります。 MFC では、アプリケーションの最初のアイコン リソースがアプリケーション アイコンであり、次のアイコン リソースが最初のドキュメント アイコンであるというように続くことを前提としています。

たとえば、ドキュメント テンプレートはアプリケーションの 3 つのうちの 3 番目です。 アプリケーションのインデックス 3 にアイコン リソースがある場合、そのアイコンがドキュメント テンプレートに使用されます。 ない場合は、インデックス 0 のアイコンが既定として使用されます。

関連項目

MFC の一般的なトピック
ドキュメント テンプレートの作成
ドキュメントおよびビューの作成
各種 MFC オブジェクト間の関係
新しいドキュメント、ウィンドウ、ビューの作成