ドキュメント テンプレートとドキュメント/ビューの作成手順
更新 : 2007 年 11 月
ドキュメントとそれに関連するビューおよびフレーム ウィンドウの複雑な作成処理を管理するため、フレームワークは 2 つのドキュメント テンプレート クラスを使用します。1 つは、SDI アプリケーション用の CSingleDocTemplate であり、もう 1 つは MDI アプリケーション用の CMultiDocTemplate です。CSingleDocTemplate では、一度に 1 つの型のドキュメントを 1 つ作成し、保存できます。CMultiDocTemplate には、1 つの型のドキュメントのうち、開いている複数のドキュメントのリストが保持されます。
アプリケーションによっては、複数のドキュメント タイプをサポートします。たとえば、1 つのアプリケーションでテキスト ドキュメントとグラフィックス ドキュメントをサポートすることもあります。このようなアプリケーションでは、[ファイル] メニューの [新規作成] を選択すると、ダイアログ ボックスにオープンできるドキュメント タイプが一覧表示されます。サポートされているドキュメント タイプごとに、アプリケーションでは別のドキュメント テンプレートを使用します。2 つのドキュメント タイプをサポートする MDI アプリケーションの構成を次の図に示します。この図では、複数のドキュメントが開いています。
2 つのドキュメント タイプをサポートする MDI アプリケーション
ドキュメント テンプレートは、アプリケーション オブジェクトによって作成され管理されます。アプリケーションの関数 InitInstance で実行される主な処理の 1 つは、該当する種類のドキュメント テンプレートを 1 つ以上構築することです。この機能については、「ドキュメント テンプレートの作成」で説明します。アプリケーション オブジェクトは、それぞれのドキュメント テンプレートへのポインタをテンプレートのリストに保存し、ドキュメント テンプレートを追加するためのインターフェイスを提供します。
複数のドキュメント タイプをサポートする場合は、ドキュメント タイプごとに AddDocTemplate の呼び出しを追加する必要があります。
ドキュメント テンプレートごとにアイコンが登録されます。登録されるアイコンは、そのテンプレートがアプリケーションのドキュメント テンプレート リスト内のどの位置にあるかによって異なります。ドキュメント テンプレートは、AddDocTemplate を呼び出して追加した順番に並んでいます。MFC では、アプリケーションの先頭のアイコン リソースをアプリケーション アイコンと見なし、次のアイコン リソースを最初のドキュメント アイコンと見なします。以降も同様です。
たとえば、あるドキュメント テンプレートがアプリケーションの 3 つのドキュメント テンプレートの 3 番目にあるとします。このアプリケーションのインデックス 3 にアイコン リソースがある場合は、そのアイコンがドキュメント テンプレート用に使用されます。ない場合は、既定でインデックス 0 のアイコンが使用されます。