将打印的窗体保存下来,里面包含数据(有表格)和图片,打印的窗体高度很大,有不可见区域。用API函数GetWindowDC和BitBlt却只能将可见区域的内容保存为图片。 
  dc = GetWindowDC(Me.hwnd) 
  Call BitBlt(Picture1.hDC, x, y, Me.Width, Me.Height, dc, 0, 0, SRCCOPY) 
  SavePicture Picture1.Image, "D:\1.bmp" 
请问各位怎么解决呀,还有没有什么更好的方法呀?

解决方案 »

  1.   

    如何打印整个VB 窗体和控制打印大小
    http://support.microsoft.com/kb/84066
      

  2.   

    能说说具体使用方法吗?我存下来的图片是怎么是黑色的呀
    Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
    Private Declare Function PrintWindow Lib "user32" (ByVal SrcHwnd As Long, ByVal DesHDC As Long, ByVal uFlag As Long) As Long
    Private Sub Command1_Click()
        Dim dc     As Long
        dc = GetWindow(Me.hwnd, GW_OWNER)
        Call PrintWindow(dc, Picture1.hDC, 0)‘为1时也是,只是不是全黑
    DoEvents
    End Sub
      

  3.   

    http://support.microsoft.com/kb/84066
    看msdn吧要打印自身那个代码照搬就可以了
      

  4.   

    http://support.microsoft.com/kb/84066
    看msdn吧要打印自身那个代码照搬就可以了