Capture de l'image d'une form et de tous ses contrôles

Contenu du snippet

Private Const WM_PRINT As Integer = &H317
Private Const PRF_CLIENT As Integer = &H4
Private Const PRF_CHILDREN As Integer = &H10
Public Function PrintControl(ByVal Ctrl As System.Windows.Forms.Control) As System.Drawing.Bitmap
  Dim bmp As System.Drawing.Bitmap = Nothing
  Dim gr As System.Drawing.Graphics = Nothing
  Dim hdc As IntPtr = IntPtr.Zero
  Try
    bmp = New System.Drawing.Bitmap(Ctrl.ClientRectangle.Width, Ctrl.ClientRectangle.Height, Ctrl.CreateGraphics())
    gr = Graphics.FromImage(bmp)
    hdc = gr.GetHdc()
    Dim wParam As IntPtr = hdc
    Dim lParam As IntPtr = New IntPtr(PRF_CLIENT Or PRF_CHILDREN)
    Dim msg As System.Windows.Forms.Message = System.Windows.Forms.Message.Create(Ctrl.Handle, WM_PRINT, wParam, lParam)
    MyBase.WndProc(msg)
  Catch
  Finally
    If Not gr Is Nothing Then
      If hdc <> IntPtr.Zero Then gr.ReleaseHdc(hdc)
      gr.Dispose()
    End If
  End Try
  Return bmp
End Function

Compatibilité : VB 2005, VB.NET 1.x

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.