Comment : restituer manuellement des graphiques mis en mémoire tampon

Mise à jour : novembre 2007

Si vous gérez vos propres graphiques mis en mémoire tampon, vous devrez être capable de créer et restituer des mémoires tampon de graphiques. Vous pouvez créer des instances de la classe BufferedGraphics qui est associée aux surfaces de dessin sur votre écran en appelant la Allocate. Cette méthode crée une instance de BufferedGraphics qui est associée à une surface de rendu particulière, telle qu'un formulaire ou contrôle. Après avoir créé une instance de BufferedGraphics, vous pouvez dessiner des graphiques dans la mémoire tampon qu'elle représente par le biais de la propriété Graphics. Après avoir exécuté toutes les opérations graphiques, vous pouvez copier le contenu de la mémoire tampon vers l'écran en appelant la méthode Render.

Remarque :

Si vous exécutez votre propre rendu, la consommation de mémoire augmentera, bien que dans de faibles proportions.

Pour afficher manuellement des graphiques mis en mémoire tampon

  1. Obtenez une référence à une instance de la classe BufferedGraphicsContext. Pour plus d'informations, consultez Comment : gérer manuellement des graphiques mis en mémoire tampon.

  2. Créez une instance de la classe BufferedGraphics en appelant la méthode Allocate, comme illustré dans l'exemple de code suivant.

    ' This example assumes the existence of a form called Form1.
    Dim currentContext As BufferedGraphicsContext
    Dim myBuffer As BufferedGraphics
    ' Gets a reference to the current BufferedGraphicsContext.
    currentContext = BufferedGraphicsManager.Current
    ' Creates a BufferedGraphics instance associated with Form1, and with 
    ' dimensions the same size as the drawing surface of Form1.
    myBuffer = currentContext.Allocate(Me.CreateGraphics, _
       Me.DisplayRectangle)
    
    
    // This example assumes the existence of a form called Form1.
    BufferedGraphicsContext currentContext;
    BufferedGraphics myBuffer;
    // Gets a reference to the current BufferedGraphicsContext
    currentContext = BufferedGraphicsManager.Current;
    // Creates a BufferedGraphics instance associated with Form1, and with 
    // dimensions the same size as the drawing surface of Form1.
    myBuffer = currentContext.Allocate(this.CreateGraphics(),
       this.DisplayRectangle);
    
  3. Dessinez des graphiques dans la mémoire tampon de graphiques en définissant la propriété Graphics. Par exemple :

    ' Draws an ellipse to the graphics buffer.
    myBuffer.Graphics.DrawEllipse(Pens.Blue, Me.DisplayRectangle)
    
    // Draws an ellipse to the graphics buffer.
    myBuffer.Graphics.DrawEllipse(Pens.Blue, this.DisplayRectangle);
    
  4. Lorsque vous avez terminé toutes vos opérations de dessin dans la mémoire tampon de graphiques, appelez la méthode Render pour restituer la mémoire tampon, soit sur la surface de dessin associée à cette mémoire tampon, soit sur une surface de dessin spécifiée, comme illustré dans l'exemple de code suivant.

    ' Renders the contents of the buffer to the drawing surface associated 
    ' with the buffer.
    myBuffer.Render()
    ' Renders the contents of the buffer to the specified drawing surface.
    myBuffer.Render(Me.CreateGraphics)
    
    // This example assumes the existence of a BufferedGraphics instance
    // called myBuffer.
    // Renders the contents of the buffer to the drawing surface associated 
    // with the buffer.
    myBuffer.Render();
    // Renders the contents of the buffer to the specified drawing surface.
    myBuffer.Render(this.CreateGraphics());
    
  5. Après avoir rendu les graphiques, appelez la méthode Dispose sur l'instance de BufferedGraphics pour libérer les ressources système.

    myBuffer.Dispose()
    
    myBuffer.Dispose();
    

Voir aussi

Tâches

Comment : gérer manuellement des graphiques mis en mémoire tampon

Concepts

Graphiques mis deux fois en mémoire tampon

Référence

BufferedGraphicsContext

BufferedGraphics