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