如何将PictureBox 里所包含的image,line label 存成一张图
片。

解决方案 »

  1.   

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const WM_PAINT As Long = &HF&
    Private Const WM_PRINT As Long = &H317
    Private Const PRF_CHILDREN As Long = &H10&
    Private Const PRF_CLIENT As Long = &H4&
    Private Const PRF_OWNED As Long = &H20&'保存 PictureBox 中的内容为图片(包括控件)
    Sub SaveINPicture(ByRef oPic As PictureBox, ByRef oPic2 As PictureBox, ByVal strPicFile As String)
        Dim rv As Long
        
        oPic.SetFocus
        
        oPic2.AutoRedraw = True
        rv = SendMessage(oPic.hwnd, WM_PAINT, oPic2.hDC, 0)
        rv = SendMessage(oPic.hwnd, WM_PRINT, oPic2.hDC, PRF_CHILDREN + PRF_CLIENT + PRF_OWNED)
        oPic2.Picture = oPic2.Image
        oPic2.AutoRedraw = False    SavePicture oPic2.Picture, strPicFile
        
    End Sub
    需要通过另一个 picturebox 过渡(opic2),可以在窗体上放一隐藏控件
      

  2.   

    SavePicture Picture1.Picture, "e:\xx.bmp"
    或者
    SavePicture Picture1.Image, "e:\xx.bmp"两者有什么区别我也不清楚
    至少有一点区别:
    是否可以保存因为PictureBox大小限制而没有显示出来的部分
      

  3.   

    fxy_2002(阿勇)的方法应该是完整的