那就要使用抓图的方法
下面代码把Picture1的内容复制到Picture2中
GetDC和BitBlt为API函数
声明可使用API浏览器
Dim hDC As Long
hDC = GetDC(Picture1.hwnd)
sx = Picture1.Width \ Screen.TwipsPerPixelX
sy = Picture1.Height \ Screen.TwipsPerPixelY
BitBlt Picture2.hDC, 0, 0, sx, sy, hDC, 0, 0, vbSrcCopy
保存图片用SavePicture就行了

SavePicture picture2.Image ,"d:\1.bmp"

解决方案 »

  1.   

    printer.paintpicture picture1.image,0,0
      

  2.   

    Private Sub cmdPrint_Click()
    '保存打印地图   Dim NumCopies As Long, i As Long
       
       On Error GoTo ErrHandler
       
      '保存地图
       SavePicture pic.Image ,"d:\pic.bmp  '打印地图
       CommonDialog1.CancelError = True   '将 Cancel 设置成 True。
       CommonDialog1.ShowPrinter   '显示“打印”对话框。   '从对话框中获取用户选定数值。
        NumCopies = CommonDialog1.Copies
        For i = 1 To NumCopies
            Printer.PaintPicture pic.Image, 0, 0
        Next iErrHandler:
       '用户按下了“取消”按钮。
    End Sub
      

  3.   

    我想用printer.paintpicture进行打印,可是为何他只是打印picturebox中显示
    的那部分?请问各位如何解决?
    谢谢!
      

  4.   

    Printer.PaintPicture picture1.Image, 離左邊距離, 離頂部距離
      

  5.   

    Printer.PaintPicture picture1.Image, 離左邊距離, 離頂部距離后面兩個參數是指打印機的參數,所以可以改為紙張橫放,或改為其他的找印機