Active ドキュメント コンテナー アプリケーションの作成
Active ドキュメント コンテナー アプリケーションを作成する最も簡単で、最も推奨される方法は、MFC アプリケーション ウィザードを使用して MFC EXE コンテナー アプリケーションを作成し、次に、Active ドキュメント コンテインメントをサポートするようにアプリケーションを変更することです。
Active ドキュメント コンテナー アプリケーションを作成するには
[ファイル] メニューで、[新規] サブメニューの [プロジェクト] をクリックします。
左ペインで、プロジェクトの種類として [Visual C++] をクリックします。
右ペインで [MFC アプリケーション] を選択します。
プロジェクトに MyProj という名前を付け、[OK] をクリックします。
[複合ドキュメント サポート] ページを選択します。
[コンテナー] または [コンテナー/フルサーバー] オプションを選択します。
[Active ドキュメント コンテナー] チェック ボックスを選択します。
[完了] をクリックします。
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 ドキュメント コンテインメントでは、より優れた印刷スキームが提供されます。
最初に、その
IPrint
インターフェイスを使用して Active ドキュメントを呼び出し、それ自体を印刷するように指示できます。 これは、以前の OLE コンテインメントとは異なります。以前は、コンテナーは、含まれている項目のイメージをプリンターCDC
オブジェクトにレンダリングする必要がありました。失敗した場合は、含まれている項目に、
IOleCommandTarget
インターフェイスを通じて出力するように指示します。それでも失敗する場合は、項目を独自にレンダリングします。
前のコードで実装された静的メンバー関数
COleDocObjectItem::OnPrint
とCOleDocObjectItem::OnPreparePrinting
は、この改善された印刷スキームを処理します。独自の実装を追加し、アプリケーションをビルドします。