在开发大型文档/视图应用程序时,打印预览功能是用户界面中不可或缺的一部分。为了提高打印预览的显示速度,本文将介绍一些在最近的大型系统开发过程中实现的改进措施。这些改进措施包括扩展MFC的打印预览过程,使用BitBlt函数创建一个无闪烁的系统。
以下是ExtPreviewView类的概述,该类是从MFC的CPreviewView派生的。这个类定义了三个保护成员,用于保存虚拟视口数据。通过初始化MFC的打印预览过程,InitVxPrintOffset()函数被执行一次,并设置上述成员的值。这样,就可以创建一个与MFC预览DC兼容的内存DC上的位图,用于高速绘制,使用虚拟纸张的最大尺寸。
class ExtPreviewView : public CPreviewView {
protected:
CSize m_VxPrintOffset;
CSize m_sizeVxVpExt, m_sizeVxWinExt;
public:
void InitVxPrintOffset(CDC* pDC);
friend class CAdvancedPreviewView;
};
在MFC中,增加了更多的缩放级别,如下所示:
#define ZOOM_IN_150 3
#define ZOOM_IN_200 4
#define ZOOM_IN_400 5
此外,还添加了一些代码,例如SetScaleSize()函数等。需要注意的是,需要为"gafximpl.h"设置一个特殊的路径,该路径必须与MFC类库的源路径相同。以下是如何设置这个路径的步骤:
通过这些改进,能够显著提高打印预览的显示速度,同时减少屏幕闪烁,为用户提供更加流畅的体验。这些改进措施不仅提高了应用程序的性能,也增强了用户的视觉体验。