创建活动文档容器应用程序的最简单且最推荐的方法是使用 MFC 应用程序向导创建 MFC EXE 容器应用程序,然后修改应用程序以支持活动文档包含。
创建活动文档容器应用程序
在“文件”菜单中,单击“新建”子菜单中的“项目”。
在左窗格中,单击 “视觉对象C++ 项目类型。
从右窗格中选择 MFC 应用程序 。
将项目命名为 MyProj,单击“ 确定”。
选择 “复合文档支持 ”页。
选择 “容器 ”或“ 容器/全服务器 ”选项。
选中 “活动文档容器 ”复选框。
单击“完成”。
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界面调用活动文档,并指示其打印自身。 这不同于以前的 OLE 包含,其中容器必须将包含项的图像呈现到打印机CDC对象上。如果失败,请告知包含项目通过其
IOleCommandTarget接口自行打印如果失败,自行呈现项目。
静态成员函数
COleDocObjectItem::OnPrint和COleDocObjectItem::OnPreparePrinting如上一代码中实现的一样,处理此改进的打印方案。添加你自己的任何实现并生成应用程序。