文档数据的显示方法和技巧
用户的视图类是负责显示文档数据的,目前常用的显示方法有三个:一是使用CEditView机制来显示,二是在视图的客户区中使用编辑控件,三是直接调用CDC类的文本输出函数绘制所有的文本内容。下面就来介绍。
1. 使用CEditView机制
在MFC文档应用程序中,其内部有一个视图指针列表变量m_viewList,由于CEditView支持文档的序列化,因此我们可以使用下列语句来进行:
((CEditView*)m_viewList.GetHead())->SerializeRaw(ar);
具体过程如下:
(1) 在InitInstance函数中,改写框架窗口类、文档类和视图类的关联,如图8所示的加框部分。
图8 在文档模板中改变关联的视图类
CEditView视图类提供了简单的文本编辑功能,如打印、查找并替换、剪贴板的剪切、复制和粘贴等。
(2) 在CTextViewerDoc::Serialize函数中添加序列化代码,如图9所示的加框部分。
图9 添加的序列化代码
(3) 运行程序,打开一个文档,看看是不是可以显示出文档的内容?(显示的内容可能会出现乱码,这是Visual C++ .NET中的一个BUG)
评述:这种方法简单有效,并且能够实现文本的编辑功能,缺点是程序中的CTextViewerView类变得没有用了,并且很难进行更深层次的视图控制。