- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RTF技术扩展 - 如何实现完美的分页打印
摘要: 本文给出了一种完美实现RTF文件分页打印的方法,并根据此方法实现了的打印预览及打印。通过本方法实现的RTFWYSIWYG(所见即所得)显示、分页预览及分页打印三者在效果上完全一致,解决了以前预览与打印存在偏差的问题,无论在分页速度和效果上均取得了突破。关键字:RTF、Rich Text Format、分页、打印。
一、RTF文件的分页算法一致是困扰已久的话题,以前我的方法是采用逐行计算行高然后再手工分页的方法,该方法有很多不足之处:
正在计算的行必须在屏幕可视范围内;
每行的左缩进位置必须为正数;
逐行计算采用模拟键盘操作进行,速度很慢;
手工计算存在一些误差
综上几点原因,旧的分页算法存在稳定性差和计算不精确等问题,因此分页结果常常出现偏差。。、向Rich Edit控件发送EM_FORMATRANGE消息来将其输出重定向到指定设备,比如打印机。也可以指定一个用于Rich Text文本格式化的输出设备。使用EM_SETTARGETDEVICE消息来指定一个用于Rich Text文本格式化的目标设备。该消息WYSIWYG(所见即所得)模式,在该模式下应用程序采用默认打印机字体规格而非屏幕字体规格来定位文本。WYSIWYG(所见即所得)目标设备EM_FORMATRANGE 消息
EM_FORMATRANGE 消息用于为指定设备格式化一定范围的文本,用于Rich Edit控件。
语法:
发送该消息,采用如下方法调用 SendMessage 函数:
lResult?=?SendMessage( ???? //?返回结果值?LRESULT
???(HWND) hWndControl, ???? // 目标控件句柄
???(UINT) EM_FORMATRANGE, ???? // 消息ID
???(WPARAM)?wParam, ???? //?=?(WPARAM)?()?wParam;
???(LPARAM)?lParam ???? //?=?(LPARAM)?()?lParam;
); 参数:
wParam
表示是否渲染文本。如果该参数为非0值,文本将被渲染;否则,文本仅仅被测量(不做实际渲染)。
lParam
指向一个 FORMATRANGE 结构体,该结构体包含输出设备相关信息,或者为NULL用于释放目标控件所绑定的信息。
返回值:
该消息返回适合该区域的最后一个字符位置,加1。
注释:
该消息通常与EM_DISPLAYBAND消息搭配,用于为输出设备诸如打印机等格式化Rich Edit控件中的内容。
非常重要的是,在你最后一次使用该消息后需要为lParam参数指定NULL值来释放所绑定的信息。另外,一旦你在某个设备使用该消息后,如果需要在不同设备再使用该消息,同样你必须先释放所绑定的信息。
消息信息:
头文件 Richedit.h 操作系统 Windows?95, Windows NT?4.0 参见:
Rich Edit Controls, EM_DISPLAYBAND, FORMATRANGE
FORMATRANGE 结构体
FORMATRANGE结构体包含用于Rich Edit控件格式化其输出到指定设备的相关信息。该结构体用于EM_FORMATRANGE消息。
语法:
typedef struct _formatrange?{
HDC?hdc;
HDC?hdcTarget;
RECT?rc;
RECT?rcPage;
CHARRANGE?chrg;
} FORMATRANGE; 成员:
hdc 渲染设备句柄。 hdcTarget 目标设备句柄。 rc 渲染区域,单位:缇。 rcPage 渲染设备的整体区域,单位:缇。 chrg CHARRANGE 结构体,表示用于格式化的文本范围。 结构体信息:
头文件 Richedit.h 操作系统 Windows?95, Windows NT?4.0 参见:
Rich Edit Controls, EM_FORMATRANGE
EM_DISPLAYBAND 消息
EM_DISPLAYBAND消息用于显示Rich Edit控件的一部分内容,该文本采用前面EM_FORMATRANGE消息所指定的设备来格式化。
语法:
发送该消息,采用如下方法调用 SendMessage 函数
lResult?=?SendMessage( ???? //?返回结果值?LRESULT
???(HWND) hWndControl, ???? // 目标控件句柄
???(UINT) EM_DISPLAYBAND, // 消息 ID
???(WPARAM)?wPar
您可能关注的文档
- 改进的LB图像修复模型和其算法.ppt
- 高考语文二轮专题复习课件四十五(下):鉴赏诗歌表达技巧练习.ppt
- 高三数学课件:苏教版组合数两个性质说课.ppt
- 高三语文语言及文学2.ppt
- 吴有昌2010年广东省数学高考.ppt
- 高中地理第二节 (第一节).ppt
- 汉语古诗及新诗的英译张智中.ppt
- 合同管理20111综述.ppt
- 物联网知识体系及学科建设-王志良教授.ppt
- 基因控制生物现状.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)