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

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

编辑:说三道四文库 发布时间:2017-08-18 05: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


谢谢过江项羽兄!!
敏捷开发流程管理须参考的3个要素 微软潘正磊谈DevOps、Visual Studio 2013新功能、.NET未来 Jail Breaking之后,iOS 7的指纹识别还hold住么? “勇者前线”开发商Gumi获1900万美元融资 工信部发首批10张虚拟运营商牌照 开发者有哪些新机会 【PPT集萃】十位一线专家分享Spark现状与未来 谁主沉浮,亚马逊和思科角力DaaS市场 忆往昔峥嵘岁月稠——看苹果第一代iPhone的“风骚”往事 开源工具链“大牛”的经验分享:HelloGCC 2013精彩演讲回顾 20个超实用的JavaScript技巧及最佳实践 【开源专访】Linux Deepin:做更好用的Linux桌面系统 访Andy Jassy:感受亚马逊AWS生态观,思考国内外云计算差异 站到风口,最先飞起来的能将服务做到极致的IDC 苹果Siri再获一专利:可使用自然语音输入来搜索和标记图片 研发周报:Google抛弃C语言,采用Go语言重写Go编译器 取其精华 IE11里移除和新增的功能 大胆预测亚马逊即将推出的五大产品或服务 移动周报:GitHub章鱼猫中国之行 三星与LG的新动向:同样的物联网 ,不同的玩法 从Twitter到Tinder,看社交媒体在2013年的沉浮 一周消息树:有道周枫和他的“放养”团队、太极助手惹“非议” Netflix:使用大数据驱动商业决策 “中国杯”游戏极限开发大赛报道 回顾2013软件开发:JavaScript领风骚 京东“宙斯杯”创新应用大赛,百万奖金为“你”而等待 12306上的分布式内存数据技术GemFire Canalys:苹果、三星2014年仍统治平板市场 微软压力山大 Google和苹果的下一个战场 回顾2013科技界大事件:Mayer登Vouge杂志、Ballmer离职 《近匠》第03期:移动开发工具访谈,AVOS Cloud——后端的金刚钻 次世代视觉:Avegant Glyph智能眼镜技术解析 求救,在线等待。 请问:win2000下怎么读写ASI槽,地址为358、359、35A? ADO 连接EXCEL 错误 !!!!!怎么解决 请问:win2000下怎么读写ASI槽,地址为358、359、35A? 在WIN2000下出现...... 文件拖动问题,高手进来,顺便散分 晕了!!高手们帮帮我啊,这个问题有这么难吗??要死人了,在这样明天可以看报纸了! vc如何使用ado,有简单例子即可! JDBC数据库联接的问题?(急) 怎样把一个textarea的大量文字分成几小块分别存在几个textarea里?? VB生成的EXE文件不在WINDOWS环境下能运行吗? 如何通过程序控制系统中的另一个程序界面 不使用dataset,能不能把DataGrid初始化成这样? 分配的内存是放在heap好还是放在stack上好???? 请大家帮帮忙,关于确定文件是否存在的问题。 高分求两个文件:分别为tlbimp.exe和excel.dll 50分一个 求教flash/存储卡开发 急救!如何再VB中把罗马数字和阿拉伯数字互相转换! dataGrid问题 在线等待 win2k server配了ad和dns后新开了很多端口,它们都是干什么的? 我的cb6怎么了?? 那位大哥能给我一个qq号?1000分酬谢? JBuilder7+Weblogic7+SQLServer2000的一个简单问题! 请问哪里有vfp的电子书? 3com Switch 1100 不能用了,怎么处理 急:怎样用crontab生成sa文件记录每天机器的耗内存情况? usb的通信问题,进者有分! 如何让WIN 2000 Prefession 装上服务器端 键盘delete怎么调用? 用Asp怎么得到用戶的機器名? 《Java与模式》一书作者的专栏 各位长老,如何修改本机的网关并让其立即生效? 关于数据表查询的问题? 创建二叉树及遍历的问题 高手请进! 研究生到底上些什么课,偶想知道,好明确自己的方向,请知道的朋友来谈谈。 如何在ASP.NET中连接PROGRESS数据库? VC中如何调用VB写的 DLL中的函数? 如何在程序背景中添加背景图片? postgreSQL中文问题 那里有informix的书下载 高分求助 MPEG4的视频问题 想为TListBox组件添加水平滚动条,有什么办法 在C#中,与CHTMLView类对应的控件是什么? 我有个小的30万象素的数码照相机,能用vb编程控制它自动照相么? 为什么我编译最基本的java文件总出错,告诉我import javax.servlet.http.*包 在linux下安装应用程序 关于串口的疑难问题 怎么连接数据库啊 请问如何用setfilter检索日期型数据 谁熟悉mpeg4 Audio? 黄河在哪?黄河的水来自哪?黄河的水为什么黄?刚都了篇壶口瀑布,但对黄河还是对一无所知. 玻璃杯壁上的气泡把一个玻璃杯上装些水,静置一段时间后(几天),杯壁上会有很多小气泡,但若杯口封有保鲜膜便不会有气泡. 在哪里可以买到醋酸洗必泰的原料啊,到处都是溶液成品. 老人叫住了我,说:“我想你一定拉的非常好,可我的耳朵聋了.如果不介意我在场的话起继续.是什么描写啊! 为什么装满热水的封闭的玻璃杯一段时间后会有许多气泡产生在玻璃杯内壁? 怎样区分羽绒和棉?哪个更暖? 老人平静地说:“我想你一定拉得非常好,可惜我的耳朵聋了.“ 改第三人称转述 碘酸钾在受热时的化学方程式?2KIO3=2KI+3O2碘酸钾受热分解生成的不是碘蒸气吗?为什么会是上面这个方程式? 羽绒棉 羽丝绒和羽绒的区别 我想你一定拉得非常好.可惜我的耳朵聋了.如果不介意我在场.请继续吧..老人说这番话时.心里怎样想的? 碘酸钾受热多少度可食用? 羽绒棉,科技绒,生物绒有什么区别,哪个更好 老人说:“我猜想你一定拉的很好,只可惜我的耳朵聋了.如果不介意我在场的话,请继续吧.”改为转述句 如何提高小学一年级数学教学质量 羽绒棉跟羽绒有什么区别 那个更暖和些呢 何谓热力学第二定律? 次声波的频率大概为多少赫兹?在振幅相同的条件下,一个物体振动的能量与振动频率成正比还是反比? “水分子从水势高的系统通过半透膜向水势低的系统移动的现象,就称为渗透作用(osmosis).”中“水势”指什么? 有没有成人可以读的新概念英语班啊? 离心泵常见故障简析与日常维护要注意什么 如何提高一年级数学教学效果 上海哪里有成人读的新概念英语班啊? 离心泵进空气的问题现场使用的离心泵,泵的入口处比储槽液面要低,意思是说无需泵运转时的离心力即可将液体压入泵内,入口处有一阀门控制进液量的高低,我想知道的是如果由于阀门开得太 怎样提高数学教学质量 鸟鸣涧中的人闲桂花落的(闲)字是什么意思 怎样提高六年级科学教学质量 做玻璃钢模具时出现气泡怎么办?如何排除气泡?小弟初学匝道还请大哥大姐们帮帮忙·小弟在此谢过· “鸟鸣涧”这个词是什么意思? 水为什么不会洒出?在杯中倒入半杯水,上面用纸盖住.用手掌压住纸把杯子翻转过来,注意不让杯中的水洒出来.放开手,杯中的水也好,纸也好,都不会掉下来.即使水中放入一些木螺丝之类的小东 玻璃钢管道为什么会出现气泡 鸟鸣涧”惊”字的用意 水为什么洒不出来用一根绳子系住装有水的木桶,然后甩起来在头上旋转,水不洒出来的原因是什么 如何提高三年级语文阅读和作文的教学质量 南极和北极有晚上吗?地方地方 地震时产生的?(超声波?次声波?电磁波?) 且它的平率低于 赫兹 人而无法直接听到 求叶子面积的那道 用手电筒照射绕地轴转动的地球仪,观察这时南极和北极“白天”和“夜晚”的长短变化,你发现了什么?急 鸟鸣涧咋么写? could you please not close the door 如何做肯定回答 英语作文水污染 《鸟鸣涧》怎么写 求证卡诺(数学)定理 锦州哪有新概念英语班!不要小孩班'我现在是高中生'麻烦知道有教学质量好的新概念班'请告知、! 鸟鸣涧写的是什么季节 急求“卡诺定理与证明”论文要求以学生论文的形式写一篇“卡诺定理与证明”相关的论文.按照标准要求写就行.这只是一般的论文,不是毕业论文那么严重的.如果觉得分数还不够,我完全可 把鸟鸣涧改写成一篇写景的短文,500字 鸟鸣涧描写的时间是地点是 卡诺致冷机的原理是什么 鸟鸣涧 改写急 促进细胞摄取葡萄糖需要加入什么激素 醋酸洗必泰适用什么病症呢?有副作用马 反应物的能量大于生成物能量,那么在化学反应时,反应物就需要_____能量才能转化为生成物 怎么写以“山水人生”为话题的作文?山水历来给人以无限的遐想与启示······800字 怎么写啊 呜呜~~~国庆的作业啊 醋酸洗必泰溶解方法醋酸洗必泰难溶于水,我在配置时加了点酒精进行溶解.除菌后使用的但是怕有影响. 四川、云南、西藏属于哪一带? 端着装满水的杯子走如何不让水洒出来 醋酸洗必泰原料药是做什么用的? 为什么手机通过微波通讯而不是无线电波? 玻璃杯倒进生水后会产生小气泡,为什么呢?玻璃杯倒进生水后杯壁会产生小气泡,为什么呢?(本人刚学物理,) 2010版中国药典二部中醋酸洗必泰叫什么名字 星云大师获华人企业领袖终身成就奖 马纪念毛泽东诞辰120周年理论研讨会举黑龙江望奎公安局回应面积超标:夜间疲美政府高官因奥巴马医改核心举措漏洞频乌克兰法院裁定没收季莫申科女儿名下饭外媒称俄罗斯在G20峰会监控各国元首外媒称俄罗斯在G20峰会监控各国元首各国如何处理打医生?日本“老爸地位指数”预测经济走势美最新型隐身驱逐舰下水奥巴马考虑终止 监听盟国领导人英国窃听丑闻案开庭 默多克昔日爱将出无人机击毙索马里“青年党”高官美国十年逾百起医院枪击事件 FBI探美国驻也门大使馆虚惊一场 婚礼烟花被男子给6岁儿子买411万豪宅:怕他长利比亚枪手狂劫五千万美元白宫曾叫停监听默克尔?捐肾牵良缘 悲剧变喜剧美媒:光有“屌丝”与“土豪”社会无法四条眼镜蛇盘绕 “守护”婴儿午睡绍兴人注意,明天起收寄快递你将可能遇福建奔驰新任CEO的信心来源-全新V福建奔驰新任CEO的信心来源-全新V控制不住想在装备上烧钱时 你是哪种类福建奔驰新任CEO的信心来源-全新V午评:大盘放量暴涨真相 耐心等待破局午间快评(05.31)福建奔驰新任CEO的信心来源-全新V福建奔驰新任CEO的信心来源-全新V2016中国最值得状元报考大学排行榜各大直播平台成立自律联盟腾讯云携鉴黄马云给腾讯道歉,是真的吗?京东躺着也油价反弹信号:油企没钱也算?5米长“史前鳄鱼”在高尔夫球场悠闲散京东商城是如何做到一直亏钱,却从来不有胆量你就来!加拿大超刺激的8大旅行孕产服务O2O奶牛妈妈,一年撬动北京周二大涨原因已查明!警惕午后2点还有5月31日 现货原油沥青分析和操作策去欧洲旅行,你需要先上网查好工人们哪扁带玩疯了也是嗨到不行|滑雪族
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘