对于第一个问题:
在画line之前,先设置picturebox.AutoRedraw = TRUE,画好后再picturebox.AutoRedraw = FALSE。打印:  With Printer
    .PaperSize = 9    'A4纸
    .Orientation = 2  '横向打印
    Printer.PaintPicture picturebox.Image, 0, 0
    .EndDoc
  End With
但以上的打印出来的图像较模糊。
你可以在picturebox画线的过程中,把picturebox换成printer直接打印即可。

解决方案 »

  1.   

    对于第二个问题:
    首先建立一个父picturebox,在其中放横竖滚动条,以及再建立一个子picturebox,画线就画在子picturebox
      

  2.   

    感谢楼上的回答,可是我把picturebox.AutoRedraw 改为TRUE之后,一运行,图像就画不出来了,这是怎么回事?
      

  3.   

    另外就是当我的滚动条的MAX值已经取到最大了,可我还想放大,怎么办?
      

  4.   

    我以下代码通过
    With Picture1
      .AutoRedraw = True
      Picture1.Line (0, 0)-(200, 200)
      Picture1.Print "abc"
      .AutoRedraw = False
    End With
    Clipboard.Clear
    Clipboard.SetData Picture1.Image, vbCFBitmap
      

  5.   

    把线画在子Picture中,子Picture的大小随着线的范围而自动(靠代码写)调整大小,同时再调整滚动条的MAX值
      

  6.   

    你的方法我试了一下,如果只有几条线还可以,可是我的图很大,把滚动条的max值占用到最大值,改变picturebox.AutoRedraw ,速度很慢很慢,而且画出图来就死机了,如果去点picturebox.AutoRedraw =false这条语句,倒是不死机速度仍然很慢很慢,我先把它保存为bmp图像,可是保存之后的图像也很大,有9.77M,图像为什么有这么大呢,有没有办法让它减小
      

  7.   

    图形分辨率是否要求很高?
    如果不是,可以用paintpicture,或bitblt缩小一些.