如何打印一個我在Picturebox 控件中畫的一張圖片。

解决方案 »

  1.   

    Visual Basic的Printer对象支持PaintPicture方法,可以支持打印位图。其语法为: 
        Printer.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode 
        参数Picture是必需的,指明要绘制到打印机上的图形的来源源,通常是对象的Picture或Image属性。 
        参数x1, y1也是必需的,均为单精度数值,指定参数picture所确定图形在打印机上绘制的坐标(x-轴和y-轴)。其值的单位是由Printer的 ScaleMode 属性决定的。 
        参数Width1和Height1是可选的,都是单精度数值,指示图象的目标宽度和高度。如果目标宽度/高度比源宽度 (width2)/高度(height2)大或者小,将适当地拉伸或压缩图形。如果省略这两个参数,则使用图形的原始尺寸。 
        参数x2, y2、Width2和Height2是可选的。它们指示参数picture确定的图象内剪贴区的坐标(x-轴和y-轴)和大小。利用这四个参数,我们可以打印图象的一部分。默认是打印整个图象。 
        参数Opcode是可选的,是长型数值。它用来定义在将图象绘制到打印机上时对图象执行的位操作(例如, vbMergeCopy 或 vbSrcAnd 操作符)。关于位操作符常数的完整列表,请参阅 Visual Basic帮助文件中的有关内容。对于打印机来说,这个参数较少使用;而在屏幕显示图象时往往利用这个参数实现一些特殊效果。 
        通过使用负的目标高度值 (height1)或目标宽度值 (width1) ,可以水平或垂直翻转位图。 
        下面是一个简单的例子: 
        Printer.PaintPicture Picture1.Image, 0, 0 
         
      

  2.   

    To:rainstormmaster(rainstormmaster) 
    很感謝你的回答,但你可能沒懂我的意思,你上面說的我也查過微軟的在線幫助,但是
    我在試用的時候,它只能打印加載的圖片,而我要的是打印我用picture1.line(x1,y1)-(x2,y2)
    所繪制的圖片,每次都提示第一個參數不能引用。我是這樣寫的:
    printer.PaintPictre picture1.picture, 33 , 33
      

  3.   

    你把在picturebox上的打印代码中的picturebox全部换成Printer。
    例如picture1.line(x1,y1)-(x2,y2)
    换成Printer.line(x1,y1)-(x2,y2)
    这样就可以了
      

  4.   

    建议你将显示的部分单独做一个子过程,在参数中使用“pic as object”,例如subPaint(pic as object),这样在picturebox中显示时,调用此过程,将picturebox作为参数传递,当要打印时,将printer作为参数传递,这样就可以在picturebox和printer中得到同样的效果