我的窗体上有几个Frame控件,里面还有很多TextBox之类的。
我要打印其中的一个,不知道如何下手。
我在搜索了一下以前的帖子,有人说用bitblt函数把Frame的内容拷到Picture控件里打印,
但是bitblt好像只能拷有hdc的控件,而Frame没有。
如果这个办法能行,要怎么做?
还有PrintForm方法,但这个方法是打印整个的窗体,我的窗体上有一部分是不能打印出来的。
不会的朋友也请顶下帖
谢谢大家。

解决方案 »

  1.   

    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
    Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = sourcePrivate Sub Command1_Click()
        Dim h As Long
        
        h = GetDC(Frame1.hwnd)
        BitBlt Picture1.hDC, 0, 0, Frame1.Width / Screen.TwipsPerPixelX, Frame1.Height / Screen.TwipsPerPixelY, h, 0, 0, SRCCOPY
    End Sub
      

  2.   

    Frame有hwnd,通过GetDC就可以通过hwnd获得hDC。