已有140人关注
使用CPrintDialog编写打印程序时打印预览与实际打印效果不一致
发表在C语言答疑区 2017-03-01
是否精华
版块置顶:

我最近编了一个串口接受的上位机程序,低层用的是ARM STM32,上位机用的是VC6.0,开发语言:C++,一切比较顺利,上位机与下位机已经能正常通信,我又加了一个功能,就是用CPrintDialog编了一个打印程序,把下位机发上来的数据打印出来,程序代码完全按照明日科技“Visual  C++开发技术大全”(人民邮电出版社,2007年3月第一版,这本书我在网上看到有第二版,但我最近买的是第一版)第19章“发票打印”编写的,具体位置为:光盘\mingrisoft\dxyy\19\04\02,现在出现了一个问题:我想在一行汉字下画一条横线,打印预览正常,但实际打印出的效果是横线总和汉字错开,如下图

画线代码:就是使用MoveTo和LineTo,我使用的操作系统是W7,不是W2000,我自己查了7 、8天,也上网找了很多资料,我自己认为可能有4个方面的原因:1、逻辑坐标与设备坐标映射方式不对。2、打印转换比例不对,原程序比例为ratex=(double)printx/screenx,ratey=(double)printy/screeny。3、操作系统不同造成,原程序使用W2000,我用的是W7。4、打印机设置不同。其中原因1、2、4我都已经试过很多次,把映射模式改为8种中 的任何一种都不对,打印机使用过HP1106,HP400,EPSON100,打印比例因为对MFC底层打印不是很清楚,只是简单的修改打印原点,比例系数,效果都不理想,现在只剩操作系统没试,因为一时找不到W2000系统,加上不知是否原因,很纠结,另外我把原“发票程序”源代码在W7操作系统的VC6.0下运行,打印效果也不对,如下图

发票打印.png憋的实在难受,我是搞下位机硬件开发的,有点束手无策了,请编程高手指点迷津,不胜感谢!!!

分享到:
精彩评论 11
wqjhj
学分:10 LV2
2017-03-08
11L

费了好大劲,问题终于解决了!使用CPintDialog 类是能编写基于对话框打印程序的,但是中间坐标映射和比例因子根本不知道怎么弄!网上找了很多例子,都是抄来抄去,代码大同小异,可打印结果根本不对!次书中的代码有错误!根本不能用于实际项目开发!真是误人子弟!果断换另一种编程思路,利用MFC中文档 视图框架本身就支持打印预览和打印是能解决该问题的!有兴趣的朋友可给我发邮i件:wqjhj163@163.com,程序虽然不完美,但已经可以满足正常使用!很累,想休息几天!

首页上一页 12 下一页尾页 11 条记录 2/2页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照