欢迎来到天天文库
浏览记录
ID:19699475
大小:109.50 KB
页数:18页
时间:2018-10-05
《基于对话框打印程序--虚拟视图new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于对话框打印程序---采取虚拟的文档视图结构方法首先生成基于对话框的MFC程序,类名为CTestDlg;往对话框上拖动2个按钮,一个事件为打印,一个为预览;voidCTestDlg::OnBtnPrint(){CPrintFrmWnd*WooPrintFrmWnd=newCPrintFrmWnd(1);}voidCTestDlg::OnBtnView(){CPrintFrmWnd*WooPrintFrmWnd=newCPrintFrmWnd(0);}然后按照以下步骤操作步骤1,从CView类派生新类CPrintView;该类主要实现预览等需要重载
2、函数OnPrepareDCOnPreparePrintingOnPrint等等#defineHEADER_TOP300//头部信息距离页面最顶端的距离classCPrintView:publicCView{protected:CPrintView();//protectedconstructorusedbydynamiccreationDECLARE_DYNCREATE(CPrintView)//AttributesUINTm_nPageNums;CFontm_FontHeader;//头部内容字体CFontm_FontMain;//主体内容字体C
3、Fontm_FontFooter;//尾部内容字体CSizem_szView;//预览窗口大小UINTm_uHeadSmpGap;//头部信息和样本信息垂直方向间距UINTm_uMainLeftGap;//除头部内容外其他内容距左边的距离,也是距离右边的距离PRINTINFOm_printInfo[2];//存储需要打印的页内容public:voidOnFilePrintPreview();voidInitPrintInfo();voidPrintContent(CDC*pDC,UINTnInex);//Operationspublic:virtu
4、alvoidOnPrepareDC(CDC*pDC,CPrintInfo*pInfo);//Overrides//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CPrintView)protected:virtualBOOLOnPreparePrinting(CPrintInfo*pInfo);virtualvoidOnDraw(CDC*pDC);//overriddentodrawthisviewvirtualvoidOnPrint(CDC*pDC,CPrintInfo*p
5、Info);//}}AFX_VIRTUAL//Implementationprotected:virtual~CPrintView();#ifdef_DEBUGvirtualvoidAssertValid()const;virtualvoidDump(CDumpContext&dc)const;#endif//Generatedmessagemapfunctions//{{AFX_MSG(CPrintView)//}}AFX_MSGDECLARE_MESSAGE_MAP()};实现如下:#include"stdafx.h"#include"test
6、.h"#include"PrintView.h"#include"PrintPreviewView.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CPrintView//使类支持RUNTIMEIMPLEMENT_DYNCREATE(CPrintView,CView)//*
7、**************************************************//Functionname:_AfxMyPreviewCloseProc//Description:很关键,删除打印类资源//***************************************************/BOOLCALLBACK_AfxMyPreviewCloseProc(CFrameWnd*pFrameWnd){ASSERT_VALID(pFrameWnd);CPrintPreviewView*pView=(CPrint
8、PreviewView*)pFrameWnd->GetDlgItem(AFX_IDW_PANE_FIRST);ASSERT
此文档下载收益归作者所有