作業中のドキュメント コンテナー アプリケーションを作成する最も簡単で最も推奨される方法は、MFC アプリケーション ウィザードを使用して MFC EXE コンテナー アプリケーションを作成し、アクティブドキュメントコンテインメントをサポートするようにアプリケーションを変更することです。
アクティブなドキュメント コンテナー アプリケーションを作成するには
[ファイル] メニューの [新しい] サブメニューから [プロジェクト] をクリックします。
左側のウィンドウで、[ 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
を置き換えます。アクティブな文書の管理により、印刷方式が改善されます。
最初に、
IPrint
インターフェイスを使用して作業中の文書を呼び出し、それ自体を印刷するように指示できます。 これは、コンテナーが含まれている項目のイメージをプリンターCDC
オブジェクトにレンダリングする必要があった以前の OLE コンテインメントとは異なります。それが失敗した場合は、その
IOleCommandTarget
インターフェイスを介してそれ自体を印刷するように含まれている項目に指示します失敗した場合は、アイテムの独自のレンダリングを行います。
前のコードで実装されているように、静的メンバー関数
COleDocObjectItem::OnPrint
およびCOleDocObjectItem::OnPreparePrinting
は、この改善された印刷スキームを処理します。独自の実装を追加し、アプリケーションをビルドします。