My FAQ,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > WINDOWS窗口视图
对话框打印预览及打印
作者:未知 时间:2005-07-20 14:13 出处:VC知识库 责编:MyFAQ
              摘要:对话框打印预览及打印

对话框打印预览及打印

作者:张子林

下载源代码

  近来我在用VC开发一套MIS时没有用MFC的文档视图模板,所以在打印这上面就只好自己写了一套,用起来感觉还可以,所以写出来大家一起修正一下吧,也许能给大家起点作用吧! 系统UI是基于对话框的,大家如果感觉不错可以进行自我修正! 我们先来看看程序界面:



  其中的学生数据现在我们已从数据库取出放在,ListCtrl控件中了,这样就为我们在打印时提供了方便,不需要再去数据重新提取数据了。 在点了打印按钮后,打印预览界面:




在预览界面中,提供了鼠标上下左右滚动功能。好了来说代码吧,在此共用了两个继承 Cdialog 的类:
1、 CpreParent
2、 CpreView
CpreParent 作为最外面的控制窗口, CpreView作为真正的预览窗口。
CpreParent窗口内包括一个平面打印控制工具栏及一个预览窗口CpreView



按钮左右顺序功分别为:
1、 报表第一页
2、 报表上一页
3、 跳转到报表页


4、 报表下一页
5、 报表最后页
6、 退出
7、 打印
我们来看在对话框打印按钮中的代码是如果来调用 CpreParent 的:在此我们要用到这样一个结构:

//打印结构

typedef struct
{
	int 	nMaxLine;		//ClistCtrl中的最大行数
	int	nCountPage;		//一共页数
	int	nCurPage;		//当前页码
	BOOL	IsPrint;			//是否打印,false 表示预览
	HWND	hWnd;			//窗口句柄
	HWND	hListView;		//列表控件句柄
	TCHAR	szTag[256];		//其它数据
	int	nTag;			//其它数据
	LPVOID	lpVoid;			//其它数据
}PRNINFO, *PPRNINFO;

//打印按钮代码

void CXJWH::OnPrint() //注这里的 CXJWH 为数据管理窗口即打印类的调用窗口
{
	if(CLtv。GetItemCount()<= 0)	//CLtv 为ClistCtrl, 这里检测是否有数据在列表中
		return;
	
	PRNINFO PrnInfo = {0};		//此为用到的一个结构, 见下面定义
	PrnInfo。hListView = CLtv。m_hWnd;	//ClistCtrl的句柄
	PrnInfo。hWnd = this->m_hWnd;	//当前窗口句柄
	PrnInfo。IsPrint = FALSE;		//当前为预览
	PrnInfo。nCurPage = 1;		//当前页为第一页
	PrnInfo。nMaxLine = CLtv。GetItemCount();	//ClistCtrl中的数据行数
	
	CPreParent DlgPreView;		//声明打印类
	
	DlgPreView。SetCallBackFun(DrawInfo, PrnInfo);	//在这里给它设定我们自己的打印函数
	
	DlgPreView。DoModal();		//预览
}	
注: 这里的 DlgPreView.SetCallBackFun(DrawInfo,PrnInfo);
DrawInfo 是我们在 CXJWH 定义好的静态打印函数。

static void DrawInfo(CDC &memDC,PRNINFO PrnInfo);

由于本人写作水平有限,所以还是请大家看代码吧!

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有