说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

100分紧急求救~有关CB打印问题

编辑:说三道四文库 发布时间:2017-01-23 12:32
HTML文档下载 WORD文档下载 PDF文档下载
我现在想在打印纸的特定位置打印一条直线(如起点坐标(200cm,200cm)终点坐标(400cm,400cm)),我设想现在Form上的Image画

imgMain->Canvas->MoveTo(100,100);
imgMain->Canvas->LineTo(200,200);
然后在通过象素和打印机的映射关系处理,然后在调用form->Print().

先前提问过,网友说使用SetMapMode,但是好像不太会用,是不是SetMapMode(GetDC(form->Handle),参数)还是不因该调用form的打印函数,需要另行书写打印函数?望各位高手指点用法。还有人说是GetDeviceCaps函数,不知应该使用拿一个?还是我的思路错误?望大侠指点!
关注!关注.
不好意思,我好像最多只能给40分
屏幕呢打印的像素对应关系为:PrintPhotoSizeX,PrintPhotoSizeY
ScreenPixelsPerInchX=GetDeviceCaps(Screen->Canvas->handle, HorzRes)/GetDeviceCaps(Screen->Canvas->handle, HORZSIZE);
ScreenPixelsPerInchY=GetDeviceCaps(Screen->Canvas->handle, VERTRes)/GetDeviceCaps(Screen->Canvas->handle, VERTSIZE);

    PrinterPixelsPerInchX=GetDeviceCaps(Printer->handle, HorzRes)/GetDeviceCaps(Printer->handle, HORZSIZE);
    PrinterPixelsPerInchY=GetDeviceCaps(Printer->handle, VERTRes)/GetDeviceCaps(Printer->handle, VERTSIZE);

            PrintPhotoSizeX=OneInchSizeWidth/ScreenPixelsPerInchX * PrinterPixelsPerInchX;
            PrintPhotoSizeY=OneInchSizeHeight/ScreenPixelsPerInchY * PrinterPixelsPerInchY;

打印可以这样:
TPrinter *Prntr = Printer();
Prntr->BeginDoc();
Prntr->Canvas->MoveTo(100,100);
Prntr->Canvas->LineTo(200,200);
Prntr->EndDoc();
先设置打印机Canvas的坐标映射方式:
  SetMapMode (Printer()->Canvas->Handle, MM_LOMETRIC );
这句把Canvas的坐标映射设为 每逻辑单位就是0.1毫米。
然后
  Printer()->Canvas->MoveTo (100,100);
  Printer()->Canvas->LineTo (200,200);
这就从 (10cm,10cm) 开始划一条直线到 (20cm,20cm)
注意打印机有一个不可打印区域,而Printer()->Canvas是不包括这个区域的
就按照项羽兄的代码就可以了,这个代码在很多地方都用过哦。
感谢各位网友,特别是过江项羽和未死的马同志,有没有在西安的?
再请问过江项羽兄,实际上我想解决的问题是打印出来在特定的位置(当然是以厘米为单位)具有特定的直线、文字、图片,以构成整个打印结果。我开始设想的是通过对当时设备映射情况的获取,计算出相应打印机位置对应的FORM中的像素位置,并在FORM中的位置画直线、用LABEL书写文字(因为还存在用户可以对文字的位置进行托拽调整),然后再调用FORM->PRINT()打印整个FORM,不知道这样的方法是否可行?像素的位置是否是通过以下计算公式得到:
  iScreenPixelX = GetDeviceCaps(Screen->ActiveForm->Canvas->Handle, HORZRES);  //屏幕横轴得像素数
  iPrinterInchX = GetDeviceCaps(Printer()->Handle, HORZSIZE);
  //打印机横轴的英寸数
  iScreenPixelY = GetDeviceCaps(Screen->ActiveForm->Canvas->Handle, VERTRES);
  iPrinterInchY = GetDeviceCaps(Printer()->Handle, VERTSIZE);

  打印机在位置(iPrinterPostionX,iPrinterPostionY)上的点对应FORM的坐标:

  iFormPixelX = iPrinterPositionX * iScreenPixelX /iPrinterInchX; 
  iFormPixelY = iPrinterPositionY * iScreenPixelY /iPrinterInchY; 

  另外,GetDeviceCaps(Printer()->Handle,)和GetDeviceCaps(Printer()->Canvas->Handle,)究竟有什么区别?

  谢谢赐教!能不能把您的QQ号码告诉我,或者你先加我10205081,谢谢!
sorry 一直没看到。
像素的位置 PrintPhotoSizeX,PrintPhotoSizeY
OneInchSizeWidth,OneInchSizeHeight 实际需要的尺寸,单位毫米

HDC hDc=Printer()->Canvas->Handel;
int picPerMMX=GetDeviceCaps(hDc,HORZRES)/GetDeviceCaps(hDc,HORZSIZE);
int picPerMMY=GetDeviceCaps(hDc,VERTRES)/GetDeviceCaps(hDc,VERTSIZE);  
PrintPhotoSizeX=OneInchSizeWidth * picPerMMX;
PrintPhotoSizeY=OneInchSizeHeight* picPerMMY;

Printer()->Handle:打印机句柄,可控制打印机
Printer()->Canvas->Handle可用来控制Cavas


谢谢过江项羽兄!!
在Android平台上加载本地库的危险性 《近匠》程序员客栈,程序员背后的经纪人 【CTO讲堂】浅析工业级物联网项目的快速开发 云适配陈本峰:平台型企业级浏览器是未来办公移动化的核心 警报:XcodeGhost已扩散至第三方框架 我们眼中的应用另一端是什么? 【SDCC讲师专访】百度马如悦:不写代码的架构师不是好架构师 企业级应用避免臃肿混乱的6大黄金法则 SDCC 2015讲师专访精彩集锦:程序员界“香饽饽”、大神级人物都在! 从技术经理的角度算一算,如何可以多快好省的做个App(一) 【SDCC讲师专访】Java泛型作者Gilad Bracha:优秀的程序员应该未雨绸缪 【CTO讲堂】微服务架构在云端的应用 SDCC 2015创业项目路演火爆征集:寻找中国好项目 被遗忘的设计模式——详解Swift语言中的Null Object Pattern Synaptics发布全新触控及生物识别方案,正式进军车联网 无人机、机器人,英特尔RealSense已扩展至新领域 SDCC 2015中国软件开发者大会盛大开幕 《近匠》逸创云客服创始人叶翔:做好客服产品静待SaaS大爆发时代的到来 【SDCC2015现场】数据库实战论坛:分布式数据库的实践与挑战 SDCC 2015 中国软件开发者大会亮点回顾 《近匠》扬智科技GoWarrior:软硬件全面开源的计算平台 【CTO讲堂】独家直播双十一全网动态?前黑客“劳改”带你玩转大数据 《近匠》好雨云刘凡:提供全方位支持的一站式开发服务云平台 体验过HTC Vive,才知道何谓沉浸感 BDTC 2015:大数据技术精英云集 初版日程公布(表) 深度剖析C++对象池自动回收技术实现 React Native与ExMobi技术路线探索 SDCC 2015前端专场札记:Facebook、百度、腾讯、美团、饿了么等互联网公司的前端实战 芯片巨头为何痴恋开源软件?英特尔Imad Sousou来解密 3D Touch:岂止于Multi-Touch Atlassian亚太区业务经理Paul Conroy:敏捷是开发者的痛点 在试用期时,要另觅良木要负何责任? 有北京的狼吗? Access + ADO 的程序发布,需要那些文件?(就这么点分了) 一个小问题,有100分可以相送,送完为止!! Update 时出现 ODBC错误文件被另一线程占用,问题出在那里?? 怎样判断一个控件是否获得焦点. 通过row和col不行,我以前也用过, 用SetSQLSelect更改dw的sql语句后,如果dw没有检索参数时能行,如果dw有检索参数则返回-1,请问有办法吗解决吗? SQL Server中的datetime类型数据是否能比较大小? Update 时出现 ODBC错误文件被另一线程占用,问题出在那里??? 请问U-C矩阵是什么? 庆祝一下 请教程序组加入程序的问题 老是想来灌水,把这点可用分送光得了,省得挂念 IT老虎,与天为敌快进来,谢谢我只有20多分了,你们一人十分吧,我留点好吧? 如何实现打印,尤其是分页打印? paw_001,paw_001 在马? NetGuardian??哪为兄弟有啊,给我一份copy~~~~~~~~~~~~ 关于自增长字段使用的问题,高手请进 这一贴,分就少点了,就这么多啦 有人能告诉我广东省C程序员与JAVA程序员的薪水比较吗?为什么会有这种差距呢 请问用javaApplet如何控制IE界面? 点对点的讨论 水平考试与资格考试及格分别是多少分? 如何再网页中实现打印功能,份也打印。 我发现了一个网站的BUG,我该怎样进去? 到处都是泡泡,俺看的想吐,晚上再来算了。 怪事, 屏幕变黑白 我的问题_6 MYSQL中like的问题 请教打印预览问题 请问,如果我想把,file edit tools window这个主菜单栏动态去掉,怎么做? 如何用程序代码实现在Memo文本编辑框中被选中的文字加下划线。 怎样分析tcp报文(我很急呀) *.idl文件如何使用? 各位大侠,怎么写一个php在线打分的程序阿? 我测试一下 感兴趣的去试试! IE外壳扩展的程序 Delphi 6.0的一个Bug??? 我怎么把字符串放进缓冲里?急急急!!! 恭喜 zhipop 喜得漂亮的可爱的千金 几个小问题想请教大家 如何将浏览器的地址栏里的IE图标换成自己的图标? r俺明天想去给我的宝马生生级,不算显示器,3000元左右,请各位大侠们赐教该什么配置 2000下写的程序,NT 4.0workstation上为什么不能跑? 启用新主页下载数据窗口编辑器 请教Qbasic中的几个问题..... 用BCB如何向Oracle8.0.5中更新BLOB 用ODBC编程时发现错误:nvarchar 类型无数据类型同其绑定,用CString 出错!如何解决? 救命,救命!!!!!!!!!!!! 食用油的成份有哪些? 汽油装在矿泉水瓶里,被压,会不会爆炸,或者起火?比如掉在马路上,汽车压过来……会不会爆炸 把一个手机变进矿泉水瓶的魔术我看了一个魔术,那个魔术师将一个手机变进了一个完好的矿泉水瓶里,而且瓶子是完好的,现场n个观众检验过的,所以各位谁知道这么变的请教教我, 食用油的成分家里用的食用油含有什么组分啊?有没有氨基酸、蛋白质什么的? 最虎药酒配方有哪些,组成成分是什么 变魔术怎么把矿泉水瓶的盖子变到矿泉水瓶里?魔术师把瓶盖变进瓶子里边以后,观众是可以检查的?怎么变的 地沟油的有害成分有什么?为什么一般的食用油检测常用指标检查不出来? 泡制营养酒有什么要求?国家什么机构检测药酒成份最权威?包括有毒有害物质,兴奋剂,激素等 今天抽完烟扔到地上烟头立起来是什么兆头? 食用油的成分是什么 空的矿泉水瓶有什么用这个星期三是截止日期!各位帅哥美女,做考试卷要用!另:尽量多一点! 抽完烟把烟蒂丢在地上烟头树立起来有什么征兆 食用油的性质和成分 人为什么不会被大气压压扁如果解释为内外大气压平衡,产生的压力相等而相互抵消的话,那么试想用两块相同的铁板用相同大的力从相反的方向压一个人,难道由于力可以相互抵消,这个人就可 香烟烧到只剩烟头那部分后扔到地下后会继续燃烧吗?就是说抽香烟的时候抽到只剩烟头的部分,就是上面的烟草部分全都抽完了,没有弹烟灰,那扔到地上后会继续燃烧吗? 喝蜂蜜水加醋,有什么好处啊?蜂蜜水加白醋,听说可以美容,但是有蜂蜜会不会长胖啊 如何测试皮肤含水量 为什么大气压不会把人压扁?请真正懂的答 不要瞎编的 用醋和盐洗脸好吗,应该放多少是这样的,最近我开始用醋和盐洗脸,先放一盆温水,然后倒入醋在醋瓶盖里,放入2次,再加一小勺盐,然后冲脸几次,再用洗面奶洗脸,完了还是用醋水和盐水洗掉,再 地板怎么测试含水量? 为什么人在大气压中不会被压扁,而在在水中会被压扁?人在大气压中不会被压扁,是因为人身体内部也有大气,抵消了,那么在水里,人身体里也有水,为什么不和外面的水压力抵消,而在深的地方 每天用醋和食盐洗脸好吗 测试界限含水量的意义是什么? 为什么有大气压,房子不会被压扁 醋、盐、糖洗脸最近在百度上看了无数的用盐、醋、糖洗脸的好处,都是说可以美白、祛痘,去黑头什么的.我也想试试,就不知道洗起来到底有没有这个功效?我在百度见别人用醋是这样洗的: 润滑油含水量怎么测试啊水太多了,润滑油的效果会降低,含水量要怎么才能测出呢 大气压那么大为什么我没被压扁?平时我用笔刺自己一下!我计算过了.压强顶多3000PA我就疼得要死大气压有10的5次方PA为什么我都不觉得疼?难道空气的压力和用笔压不同吗? 压榨油和浸出油哪个好?拜托了各位 谢谢 含水量试验 关于魔术:矿泉水瓶盖进矿泉水瓶,我想知道如何做到?不方便在这透露的话给我留言,如果有猜想的话也可以发表下.另外还有手机进矿泉水瓶也感到好奇,有达人可指教下如何做到吗? 爱石的雨提问:食用油压榨的和浸出的哪个比较好,能详细说明下吗我看到浸出的要贵,但是不晓得原因呢 求毒奶粉 瘦肉精 地沟油 染色馒头的作文 一个空矿泉水瓶在瓶底钻个小洞,然后装上适量的水拧紧瓶盖,为什么不会漏水?为什么拧紧瓶盖不会漏水,但是打开盖子却会漏水? 食用油是浸出的好,还是压榨的好. 毒奶粉,地沟油,瘦肉精,染色馒头怎么没人管?毒奶粉事件在国际上很丢脸,地沟油就不说,新闻曝光后照样舀地沟油回流餐桌,现在又搞出来瘦肉精,染色馒头,到底有关部门查的不严,还是根本就不 为何将装有适量水的矿泉水瓶打开瓶盖倒插在水槽中,水不下落?而在空中打开瓶盖,为何水下落? 化学浸出法制作的食用油有没有什么害处?据人说化学浸出法制作的油,容易富含致癌物质,它们是铅汞残留和反式脂肪酸!这是怎么回事,期待专家答疑! 求除了染色馒头、瘦肉精和地沟油之外,在国内其他的食品问题!急!求官方一点的说法 要写进报告里的 谢谢! 往空矿泉水瓶中加入热水,摇晃并盖紧瓶盖,过一会儿瓶子慢慢向内凹陷,这说明什么? 用浸出法加工食用油时,用的是什么化学溶剂. 瘦肉精三聚氰胺染色馒头地沟油和贪官只要发现哪个企业那个窝点生产这些,贪官.死刑立即执行,没收全部财产的200%(没有任何商量的余地),什么死缓啊,终身监禁那都不可能.为什么不这么判 向矿泉水瓶倒热水后迅速倒出并改紧盖子,过一会瓶变扁了, 当电器,汽油,食用油等着火时,不能用( )扑救.选择题.A,喷水 B,喷射干粉 C,喷射二氧化碳 毒奶粉,瘦肉精,地沟油,彩色馒头,这些食品安全事件都说明了啥!诚信的缺失,道德的滑坡? 为什么把热水倒进瓶子又倒出,然后把盖子盖住,瓶子会慢慢往内缩,为什么?请给我解释关于大气压的,不要其他的条件的回答 ~三楼的,如果再没有好的答案,就是你了~ 什么食用油是采用浸出法压榨,浸出法有污染吗? 进来相继发生的“染色馒头”,“瘦肉精”,“地沟油”,“毒奶粉”等耸人听闻的食品安全事件足以表明,诚信的缺失,道德的滑坡已经到了何等严重的地步.中“耸人听闻”使用恰当吗? 刘谦矿泉水瓶倒立水不流出来的魔术怎么变的?要详细的教我 追加50分 教育我不要看魔术揭秘的滚一边去没我要的答案额 他是让人从一箱密封的矿泉水中随意抽一瓶的 所以不存在道具 如何压榨食用油是古代人工压榨的方法 , 把容积为358ml的矿泉水瓶全部按入水中不考虑瓶壁的厚度,矿泉水瓶所受到的浮力有多大? 为什么矿泉水瓶倒扣在水里,水进不去? 食用油中制作工艺:浸出和压榨,有什么区别? 矿泉水瓶如果加8公斤气压会 为什么这么冷的天气装在矿泉水瓶里的水不结冰我儿子在夏天里用矿泉水瓶装了一瓶子水,放在了院子里,现在我们河北都零下十多度了,可是它却没有结冰,我又作了实验,我找了个矿泉水瓶装 请问:压榨油和浸出油有何区别? 往矿泉水瓶里打气,它能承受多大压强才会爆? 怎么让矿泉水瓶盖进矿泉水瓶?还有手机进矿泉水瓶,有达人可指教下如何做到吗? 压榨油和浸出油的区别压榨油和浸出油哪个对身体好 汽油放到矿泉水瓶强烈震动会不会爆炸?起摩托车总是不看油,中途没有油而推着摩托车满大街跑.所以我想把汽油放到瓶子里(震动太厉害,不能使用玻璃瓶)带上,防止没油.有听说塑料瓶里装 把手机放到矿泉水瓶的魔术怎么变的?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn