Bonjour à tous!
Je suis en train d'essayer d'imprimer une form complète sous VB.NET 2003, mais j'ai quelques problèmes à l'impression avec la méthode de la capture d'écran.
J'ai ce code sur l'évenement Click d'un MenuItem :
Ceci sur le PrintDocument :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CaptureScreen() PrintDocument1.Print()
Et enfin la fonction de capture d'écran :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage e.Graphics.DrawImage(memoryImage, 0, 0) End Sub
Le problème est qu'à l'impression je vois le menu déroulant dans lequel je viens de cliquer sur mon item "Imprimer" !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Declare Function BitBlt Lib "gdi32.dll" Alias "BitBlt" (ByVal hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, ByVal dwRop As System.Int32) As Long Dim memoryImage As Bitmap Private Sub CaptureScreen() Dim mygraphics As Graphics = Me.CreateGraphics() Dim s As Size = Me.Size memoryImage = New Bitmap(s.Width, s.Height, mygraphics) Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage) Dim dc1 As IntPtr = mygraphics.GetHdc Dim dc2 As IntPtr = memoryGraphics.GetHdc BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, Me.ClientRectangle.Height, dc1, 0, 0, 13369376) mygraphics.ReleaseHdc(dc1) memoryGraphics.ReleaseHdc(dc2) End Sub
Devrais-je passer par un aperçu, ou bien une fenetre "imprimer" avec le choix des imprimantes etc., et si oui comment le réaliser ?
Je vous remercie!
Partager