Private Sub Command1_Click()
On Error GoTo ABC
Picture1.Picture = LoadPicture("C:\456\1.jpg")
If Picture1.Picture <> LoadPicture("") Then
Printer.PaintPicture Picture1.Picture, 0, 0
Else
MsgBox "Picture1中没有图片可打印!"
End If
Printer.EndDoc
ABC:
Exit Sub
End Sub打印出来的图片 只显示一部分 怎么解决呢???

解决方案 »

  1.   

    版主: 现在的主要目的是对任意尺寸的图片进行打印, 比如说打印成 四寸 或者六寸 等等................现在对原始图片尺寸处理有的纠结,
    Private Sub Form_Load()
            Printer.ScaleMode = 3  '单位为毫米
    '       Printer.Copies = 10  '打印份数为10
    '       Printer.PaperSize = vbPRPSUser '纸张为自定义尺寸
            Printer.PrintQuality = 4  '照片质量高品质打印
            Printer.ScaleWidth = 1181.1 '纸张宽度mm,比如210mm
            Printer.ScaleHeight = 1771.7 '纸张高度mm,比如297mm
            Printer.ColorMode = 2 '彩色输出
            Picture1.Picture = LoadPicture("C:\images.jpg") '这时加入背景图,使其一运行就充满窗体
            Picture1.Visible = True
            Picture1.ScaleMode = 3
            Picture1.AutoRedraw = True
            Picture2.ScaleMode = 3
            Picture2.ScaleHeight = 1771.7
            Picture2.ScaleWidth = 1181.1
            Picture2.AutoRedraw = False        Picture2.Visible = True       
            Call Form_Resize
            Me.Refresh
            Me.AutoRedraw = False
    End SubPrivate Sub Form_Resize()
            Dim Rtn As Long
            Dim hDC1 As Long, hDC2 As Long, hDC3 As Long
            hDC1 = Picture1.hdc
            hDC2 = Me.hdc
            hDC3 = Picture2.hdc
            
            Call SetStretchBltMode(hDC3, HALFTONE)
            Rtn = StretchBlt(hDC3, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, hDC1, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, SRCCOPY)
            Picture2.AutoRedraw = True
             Picture2.PaintPicture Picture1.Picture, 0, 0
             Printer.PaintPicture Picture2.Picture, 0, 0, 1181.1, 1771.7
            
             Printer.EndDoc
            Me.RefreshEnd Sub用 StretchBlt 缩放后, 把picture1 里面的图片 缩放到picture2,   最后竟然无法打印 picture2,现在的问题是缩放后的图片怎么进行保存?反正是比较纠结,,,,,,,,,高手们多多指教@能给个示例代码更好
      

  2.   

    Private Sub Form_Resize()
        Picture2.AutoRedraw = True
        Picture2.PaintPicture Picture1.Picture, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight
        
        Printer.PaintPicture Picture2.Image, 0, 0, 1181.1, 1771.7
        Printer.EndDoc
        Me.Refresh
    End Sub
      

  3.   

    最后那儿:Printer.PaintPicture Picture2.Picture, 0, 0, 1181.1, 1771.7
    应该是 Picture2.Image吧!