- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在C_Builder6中建立打印预览类TPreView
在 C+ + Builder 6 中建立打印预览类 T P reView
杨
勇
摘 要: 通过应用 Windows 打印相关的 API 函数, 在 C++Builder6 中构建一个打印预览类 TPre-
将打印编程进行封装,
提供类似于打印类 TPrinter 的接口, 从而简化了 C++Builder6 中的
View,
报表打印预览编程工作。
关键词:
打印预览;
报表;
C++Builder6
1 引言
对于数据库应用程序, 报表的打印和预览是必不可少的基 本 功 能 。 C++Builder 6 对打印工作提供了一套专门的控件组 Qreport[1], 对常规和比较简单的数据打印基本能够胜任 , 但是
实现要点
3
3.1 TPreView 的窗体
预览需要在窗 口 中 进 行 , 因 此 TPreView 类直接继承于窗 口类 TForm, 图 1 为打印预览的设计期窗口。
对于比较复杂的动 态 数 据 报 表 ,
虽然可以用动态生成 Qreport
控件的方式完成, 但是程序的复杂度大大增加, 失去了使用组
件简化编程的初衷。 大量使用控件对系统内存和资源的消耗也 不小。 在这种情况下, 直接用 BCB 提供的打印类 TPrinter 实现 数据的动态打印反而来得简便。 遗憾的是, C++Builder 6 没有 提供与之相配套的预览类, 给打印预览的编程工作带来困难 。 设计一个打印预览类 TPreView, 与 Tprinter 类结合使用, 可以 快速实现报表的预览打印功能。
2 设计思路
TpreView 没有设计成 VCL 组 件 。 如果设计为组件 , 使 用 者在使用之前要安装到 C++Builder6 集成开发环境中 , 增加了 使用难度, 也不便于扩充修改。 因此直接设计为类的形式, 应 用时直接加入 project 中 即 可 调 用 。 使用者还可以根据程序需 要具体修改源码。
为 了 让 TPreView 类的使用者快速掌握其用法 , TPreView 类的接口基本上模仿 TPrinter 类[2], 打印和打印预览两者完成 功能的主要区别是输出设备不同, 而两个类的工作方法基本一 致, 表 1 列出两个类的主要属性和方法。
表 1 Printer 与 TPreView 的主要属性和方法对比
TPreView 的 窗 口 主 要 由 ToolBar1 ( 工 具 栏 ) 、 ScrollBox
(带垂直滚动条的窗口组件 ) 、 StatusBar ( 状态栏) 3 个组 件 构 成 , 工 具 栏 ToolBar1 上主要有预览页 面 导 航 按 钮 、 打 印 按 钮 显示比例按钮等 。 展示预览图像的图元文 件以平铺的方式置 入一个 TImage 图 像 中, 为实现多页预览, Image 图 像 由 程 序 动
态 生 成 ,
每个预览页对应一个 Imag e, 然 后 显 示 Image 在
ScrollBox 中。
3.2 基本原理
实现预览的基本过程是: 将输入到打印机的图形输入到内 存中以图元文件形式存放, 再把图元文件显示到电脑屏幕上 。
预 览 图 形 采 用 Windows 操作系统下的增强型元文件 (EMF) ,
元文件与位图
(bitmap) 不同, 属于矢量图形, 以图形绘制命
令来描述图像, 因此可以对图像进行缩放而不失真, 而图像的
任意缩放是一个打印预览类必需的基本功能。 增强型图元文件 的生成和显示涉及以下几个 Windows API 函数[3]:
HDC CreateEnhMetaFile(
HDC hdcRef, // handle to a reference device context
类
属性或方法
TPrinter
TPreView
输出画板
Canvas
Canvas
打印/预览页面序号
PageNumber
PageNumber
打印/预览工作初始化
BeginDoc (void)
BeginViewDoc (void)
打印/预览输出结束
EndDoc (void)
EndViewDoc (void)
打印/预览换页
NewPage (void)
NewViewPage (void)
件句柄 hdcEMF 代入 ( 文中的图元文件均存于系统内 存 中 ) ,
函数返回一个作图已经完成的图元文件句柄 , 并 释 放 被 Cre-
ateEnhMetaFile 函数占用的设备描述表句柄。
图元文件绘图完毕 ,
输出:
接 下 来 用 PlayEnhMetaFile 函 数 进 行
这是一个生成增强型图元文件的 Window
您可能关注的文档
- 光盘刻录教程之NERO9刻录图文教程.docx
- 全国1:25万,1:5万代码说明.doc
- 僵尸枪手2所有隐藏点.doc
- 全媒体商城企划案11版.docx
- 全国青少年英语全能王大赛培训教材--印刷版429.doc
- 全球10座最神奇的桥.doc
- 全球10间创意美食餐厅.doc
- 全球12座令人称奇的古建筑废墟,依然充满魅力.doc
- 全球22个绿色建筑创意无限.doc
- 全球博客现状报告2008要点分析中外博客状况对比.doc
- 中国气动搅拌机行业发展分析及发展趋势预测与投资风险研究报告.docx
- 2024至2030年互联网+纸巾市场前景研究报告.docx
- 2024至2030年全球及中国卫星制造行业市场调研及投资建议报告.docx
- 2024至2030年版中国教育信息化项目可行性研究报告.docx
- 中国隔离衣行业市场现状分析及竞争格局与投资发展研究报告2024-2029版.docx
- 2024至2030年中国纺织洗涤信息化行业发展监测及投资战略研究报告.docx
- 2024至2030年中国壬二酸盐行业发展预测及投资策略报告.docx
- 2024至2030年中国月子中心行业市场需求与投资规划分析报告.docx
- 2024至2030年中国商铺地产市场发展预测及投资策略分析报告.docx
- 2024至2030年中国工业除尘器市场现状研究分析与发展前景预测报告.docx
最近下载
- 20年一造交通案例讲义杨建虎(正式版).pdf
- 五年级上册小学高年级学生读本第3讲《把人民放在心中最高位置》教案.doc VIP
- SY∕T 6671-2017 石油设施电气设备场所ⅰ级0区、1区和2区的分类(2-1).pdf
- 江苏省住宅装饰质量标准.doc
- 小学四年级数学上册亿以内数的读写专项练习题 .docx
- 2023年成人高考数学(文科)真题试卷及答案.docx VIP
- 大家的日语2-课件23-50课第27课.ppt
- ME4057 系列_C10.0微盟原厂规格书.pdf VIP
- 电机学刘慧娟习题答案.pdf
- 《EN50124_1-2016铁路应用_绝缘配合_第1部分:电工电子设备的电气间隙和爬电距离(中文).》.pdf
文档评论(0)