Private Sub Form_Load()
    Picture1.AutoRedraw = True
End Sub
' 我课件中的一个代码
Private Sub num_print_Click()
On Error GoTo 300
    Dim w As Long, h As Long
    Dim px As Long, py As Long
    Set Picture1.Picture = Picture1.Image
    Picture1.ScaleMode = vbTwips
    Printer.ScaleMode = vbTwips
    w = Picture1.Width * N \ 100
    h = Picture1.Height * N \ 100
    If pos = 0 Then
        px = 0: py = 0
    Else
        px = (Picture1.ScaleWidth - w) / 2 ' 打印在中间
        py = (Picture1.ScaleHeight - h) / 2
    End If
        ' 打印Picture1里面的图形
        Printer.PaintPicture Picture1.Picture, px, py, w, h
        Printer.EndDoc
300
End Sub

解决方案 »

  1.   

    保存
    SavePicture Picture1.image, "e:\test.bmp"
    打印
    DoEvents
    Printer.PaintPicture picture1.Image, 0, 0, picture1.Width, picture1.Height, 0, 0, printW, PrintH, vbSrcCopy
        Printer.EndDoc
      

  2.   

    Private Sub Command3_Click()'保存图片
        Picture1.AutoRedraw = True
        SavePicture Picture1.Image, "C:\hh.bmp"
    End Sub
      

  3.   

    同意 xxlroad(土八路) 的,保存图片一定要把AUTOREDRAW 属性社为TURE
      

  4.   

    同意 xxlroad(土八路) 的
      

  5.   

    谢谢xxlroad(土八路),我可以顺利保存bmp图片了。
    等我实现打印图片后再给各位分数。
      

  6.   

    打印图片:
    printer.PaintPicture  picture1.image
      

  7.   

    如果要打印图片文件:
    dim pp as stdPicture
    set pp = LoadPicture("e:\test.bmp")
    Printer.PaintPicture  pp