对话框打印预览及打印

2016-01-29 11:58 46 1 收藏

对话框打印预览及打印,对话框打印预览及打印

【 tulaoshi.com - C语言心得技巧 】

对话框打印预览及打印

作者:张子林

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

下载源代码

  近来我在用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中的最大行数intnCountPage;//一共页数intnCurPage;//当前页码BOOLIsPrint;//是否打印,false 表示预览HWNDhWnd;//窗口句柄HWNDhListView;//列表控件句柄TCHARszTag[256];//其它数据intnTag;//其它数据LPVOIDlpVoid;//其它数据}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);

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

来源:http://www.tulaoshi.com/n/20160129/1484045.html

延伸阅读
使用有模式对话框时在对话框弹出后调用函数不会立即返回,而是等到对话框销毁后才会返回(请注意在对话框弹出后其他窗口的消息依然会被传递)。所以在使用对话框时其他窗口都不能接收用户输入。创建有模式对话框的方法是调用CDialog::DoModal()。下面的代码演示了这种用法: CYourView::OnOpenDlg() {       ...
标签: PS PS教程
      横轴代表像素本身的两度,竖轴代表新调节的亮度。中间的直线代表目前输入与输出之间的关系。可以单击某个Channels,进行Curves设置,或按Shift键选择两个以上的Channels.     在图像中准备要调节亮度的地方按下鼠标,一个圆出现在Curves对话框中的直线上。拖动这个圆即可调节图...
标签: 电脑入门
1、查看要打印预览的WORD文档的页面设置,记下来。 2、打开打印机和传真窗口,右击空白处,选择服务器属性,选择创建新格式,随便输入一个表格名,比如:KUANFU,在下方纸张大小中设置宽度和高度为你记下的宽度与高度,后面的边距不用管,然后单击保存格式按钮。 3、在打印机和传真窗口中,右击你的打印机图标,选择属性,选择设备设置,在滚...
代码如下: import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.event.ActionEvent; imp...
手机QQ对话框没有视频对话选项   QQ对话框没有视频对话选项解决办法: 1、手机不支持视频聊天 2、对方手机或电脑端不支持视频聊天功能。 3、对方或自身手机是WP系统 4、客户端版本过低不支持视频通话 总结:QQ对话框没有视频对话选项一般都是上述几种情况引起的,如果除了上述集中外还是不能的话可以尝试...

经验教程

251

收藏

60
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部