我用pictureBOX 画了一个图形,。,用打印机打印成A4,有一部分显示不出来
我用pictureBOX 画了一个图形,。,用打印机打印成A4,有一部分显示不出来,,
在网上找了一些资料。可以实现picture的缩放,但是打印出来文件还是显示不全。。
就是用的
Printer.PaintPicture Picture1.image, 0, 0
我想是不是要缩小图片的大小保存后再,打印保存后图片啊?
pis.PaintPicture Picture1, 0, 0, w / 2, h / 2, 0, 0, w, h '缩小为原图的一半
为什么在VB中可以缩放大小,保存成图片后还是原始大图片啊??
PaintPicture 根本就不能实现我要的效果。、。有人遇到过这个问题吗?解答一下
还有就是那个API,,
StretchBlt(Picture4.hdc, 0, 0, w / 2, h / 2, Picture1.hdc, 0, 0, w, h, SRCCOP)
我也用不起。请给一个实例嘛。
,谢谢
[解决办法]
适当加粗图形线条的宽度.
[解决办法]
先将图形缩放到另一个图片框里,然后打印另一个图片框的图形而不是原来图片框中的图片。
[解决办法]
你说的“保存成图片后还是原始大图片啊”是提怎么保存啊,建议多给点代码说明你做的事。
[解决办法]
1)你不指定比率怎么会缩放
Printer.PaintPicture Picture1.image, 0, 0, w / 2, h / 2, 0, 0, w, h
[解决办法]
pic.AutoRedraw 设了没有?
[解决办法]
完全可以的,参考下面的例子
Option ExplicitPrivate Const W = 100Private Const H = 50Private Sub Command1_Click() Picture1.Cls Picture1.Line (0, 0)-(W - 1, H - 1), , B Picture1.Circle (20, 20), 10 SavePicture Picture1.Image, "C:\1.bmp" Picture2.PaintPicture Picture1.Image, 0, 0, W / 2, H / 2, 0, 0, W, H SavePicture Picture2.Image, "C:\2.bmp"End SubPrivate Sub Form_Load() Dim deltaW As Long Dim deltaH As Long Me.ScaleMode = vbPixels Picture1.AutoRedraw = True Picture1.BackColor = vbWhite Picture1.ScaleMode = vbPixels Picture2.AutoRedraw = True Picture2.BackColor = vbWhite Picture2.ScaleMode = vbPixels deltaW = Picture1.Width - Picture1.ScaleWidth deltaH = Picture1.Height - Picture1.ScaleHeight Picture1.Move 0, 0, W + deltaW, H + deltaH Picture2.Move 0, H + deltaH + 8, W / 2 + deltaW, H / 2 + deltaHEnd Sub
[解决办法]
PaintPicture 中的坐标、高宽值使用 ScaleMode 指定的单位,不同的 ScaleMode 要注意换算。