Как распечатать содержимое панели - PullRequest
0 голосов
/ 25 апреля 2011

Как распечатать содержимое панели в vb.net, VS-2010 Winform.

Я попытался ввести код здесь , но по какой-то причине он не работает.

Я пытаюсь распечатать форму внутри панели

enter image description here

1 Ответ

1 голос
/ 23 мая 2011
Declare Auto Function SendMessage Lib "user32" ( _
         ByVal hWnd As IntPtr, _
         ByVal Msg As Integer, _
         ByVal wParam As IntPtr, _
         ByVal lParam As Integer) As Integer
Private Enum EDrawingOptions As Integer
    PRF_CHECKVISIBLE = &H1
    PRF_NONCLIENT = &H2
    PRF_CLIENT = &H4
    PRF_ERASEBKGND = &H8
    PRF_CHILDREN = &H10
    PRF_OWNED = &H20
End Enum

Private Function PrintPanel()
 Const WM_PRINT As Integer = &H317

    Dim myBmp As Bitmap
    Dim myGraphics As Graphics
    Dim hdc As System.IntPtr

    myBmp = New Bitmap( _
        Me.FormsDispPanel.DisplayRectangle.Width, _
        Me.FormsDispPanel.DisplayRectangle.Height)

    myGraphics = Graphics.FromImage(myBmp)
    myGraphics.DrawRectangle(Pens.White, New Rectangle(0, 0,      
  Me.FormsDispPanel.DisplayRectangle.Width, Me.FormsDispPanel.DisplayRectangle.Height))
    hdc = myGraphics.GetHdc
  '"FormsDispPanel" is your PAnel to print
    Call SendMessage(FormsDispPanel.Handle, WM_PRINT, hdc, _
        EDrawingOptions.PRF_CHILDREN Or _
        EDrawingOptions.PRF_CLIENT Or _
        EDrawingOptions.PRF_NONCLIENT Or _
        EDrawingOptions.PRF_OWNED)

    myGraphics.ReleaseHdc(hdc)

    myBmp.Save("d:\out.bmp")

    myGraphics.Dispose()
    myGraphics = Nothing

    myBmp = Nothing
    End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...