编写打印预览时,预览区域的大小跟实际纸张大小不符合?(高分求助)

VBvsVC 2003-11-24 09:22:52
假设实际用纸为A4的,则长宽为290*210mm,在代码中预览区域用一个picturebox,使用pic.width=printer.width后实际在屏幕上显示的pic的宽度为250mm,不知道高手怎么处理这个问题?
...全文
609 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
landongfang 2003-12-15
  • 打赏
  • 举报
回复
应该使用 Printer.ScaleHeight
Printer.ScaleWidth
是使用的纸章的高和宽单位是缇
VBvsVC 2003-12-15
  • 打赏
  • 举报
回复
没人解答吗?
VBvsVC 2003-11-26
  • 打赏
  • 举报
回复
高手呢?
lemonchen 2003-11-25
  • 打赏
  • 举报
回复
用坐标转换吧
VBvsVC 2003-11-25
  • 打赏
  • 举报
回复
拜托高手指教一下啊,分不够可以加
VBvsVC 2003-11-25
  • 打赏
  • 举报
回复
对阿,怎么解决这样的问题呢?
VBvsVC 2003-11-25
  • 打赏
  • 举报
回复
楼上的试过么?这个是不行的
zmrok 2003-11-24
  • 打赏
  • 举报
回复
正如楼上所说可是有什么好的解决方案呢
planetike 2003-11-24
  • 打赏
  • 举报
回复
楼上说的不错!
shwen 2003-11-24
  • 打赏
  • 举报
回复
楼主的代码没有问题,Printer 的Width、Height 属性总是以Twips 放回的,因此,如果你试试看
MsgBox pic.ScaleX(Printer.Width, vbTwips, vbMillimeters)
MsgBox pic.ScaleY(Printer.Height, vbTwips, vbMillimeters)
就知道,Printer 返回的长宽确实是290 × 210,但是在屏幕上显示的大小则不一定是290×210,因为这跟你的屏幕的尺寸以及显示分辨率相关,同样的picturebox,一个15寸显示器,和一个17寸显示器,如果他们都设定为1024×768的分辨率,那么这个pictureBox在两个显示器上看齐来的大小肯定是不一样的,但在代码中用如上的方式显示他们的实际大小则是相同的。
VBvsVC 2003-11-24
  • 打赏
  • 举报
回复
还是不行的,楼上的这样试过了么?不能指定具体数值,因为实际应用中不一定都是a4的纸张,只能使用pic.width=printer.width/
这个问题不解决的话就出现这样一个问题:在预览区域看到的内容在打印时就有可能在一张纸上打不完,还要换页,这就出现预览跟实际不符的情况,失去了预览的意义
射天狼 2003-11-24
  • 打赏
  • 举报
回复
要先设置好窗口的或者PIC父控件的单位为毫米才行!!

假设PIC控件放在窗口中!!
form1.ScaleMode = vbMillimeters
Picture1.Width = 290

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧