IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET 2003] Impression FORM complète


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Dev PHP
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Dev PHP

    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Points : 11
    Points
    11
    Par défaut [VB.NET 2003] Impression FORM complète
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            CaptureScreen()
            PrintDocument1.Print()
    Ceci sur le PrintDocument :
    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
    Et enfin la fonction de capture d'écran :
    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
    Le problème est qu'à l'impression je vois le menu déroulant dans lequel je viens de cliquer sur mon item "Imprimer" !

    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!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 62
    Points
    62
    Par défaut La 1° Impression est souvent la bonne...
    Bonjour,

    ne faudrait-il pas que tu ajoute un rafraîchissement de ta form juste avant otn CaptureScreen() ?

    Cordialement

    Guillaume MARQUES

  3. #3
    Membre à l'essai
    Profil pro
    Dev PHP
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Dev PHP

    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Désolé de répondre si longtemps après mais je n'ai pas eu l'occasion de revenir sur le forum... merci pour ta réponse en tout cas je vais aller essayer de suite.

    Entre temps j'ai du modifier mon code pour effectuer l'impression avec un thread, peut-être que cela aussi contribue a résoudre le problème.

  4. #4
    Membre à l'essai
    Profil pro
    Dev PHP
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Dev PHP

    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bon, je n'ai plus de problèmes avec le menu qui apparaît lors de l'impression, le thread est vraiment la meilleure solution.
    Cela me permet d'imprimer le contenu de la Form sans le contour (menus, etc...), avec un petit refresh au cas ou et c'est parfait.

    Je considère le topic comme résolu, merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise en forme d'un DataGrid sous .NET 2003
    Par Nonos421 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/08/2008, 09h07
  2. [VB.Net 2003] Impression de page à page
    Par Pierrick dans le forum Windows Forms
    Réponses: 1
    Dernier message: 31/03/2008, 15h57
  3. [VS.NET 2003][C#] Impressions et export (pdf) automatique d'états
    Par Abydos Business Group dans le forum SDK
    Réponses: 4
    Dernier message: 26/03/2007, 14h40
  4. [CR10][ASP.NET] PB Impression locale
    Par David.V dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 17/05/2004, 11h53
  5. VS .NET 2003 et DirectX 9
    Par GreenPhoenix dans le forum DirectX
    Réponses: 5
    Dernier message: 04/02/2004, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo