Active ドキュメント コンテナ アプリケーションの作成
更新 : 2007 年 11 月
最も簡単に Active ドキュメント コンテナ アプリケーションを作成する方法は、MFC アプリケーション ウィザードで MFC EXE コンテナ アプリケーションを作成し、Active ドキュメント コンテインメントをサポートできるようにアプリケーションを変更することです。
Active ドキュメント コンテナ アプリケーションを作成するには
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
左側のペインで、プロジェクトの種類として [Visual C++ プロジェクト] をクリックします。
右側のペインにある [MFC アプリケーション] を選択します。
プロジェクトに「MyProj」という名前を付け、[OK] をクリックします。
[複合ドキュメント サポート] ページをクリックします。
[コンテナ] オプションまたは [コンテナ/フル サーバー] オプションをクリックします。
[アクティブ ドキュメント コンテナ] チェック ボックスをオンにします。
[完了] をクリックします。
MFC アプリケーション ウィザードによるアプリケーションの生成が終了したら、ソリューション エクスプローラで、次のファイルを開きます。
- MyProjview.cpp
MyProjview.cpp で次の変更を行います。
CMyProjView::OnPreparePrinting で、関数の内容を次のコードに置き換えます。
if (!CView::OnPreparePrinting(pInfo)) return FALSE; if (!COleDocObjectItem::OnPreparePrinting(this, pInfo)) return FALSE; return TRUE;
OnPreparePrinting は、印刷用の機能を提供します。このコードは、既定の印刷準備機能を提供する DoPreparePrinting を置き換えます。
Active ドキュメント コンテインメントでは、印刷方式も改良されています。
Active ドキュメントの IPrint インターフェイスを使用して、Active ドキュメントに自分自身を印刷するように指示できます。これに対し、従来の OLE コンテインメントでは、コンテナが含まれているアイテムのイメージをプリンタの CDC オブジェクトに渡す必要がありました。
この方法が失敗した場合は、アイテムの IOleCommandTarget インターフェイスを使用して、アイテムに印刷を指示します。
これも失敗した場合は、アイテムを印刷する独自のコードを作成します。
前述のコードで実装された COleDocObjectItem::OnPrint と COleDocObjectItem::OnPreparePrinting の各静的メンバ関数は、この改良された方式で印刷処理を行います。
独自の実装を追加し、アプリケーションをビルドします。