Partager via


Graphics::EndContainer, méthode (gdiplusgraphics.h)

La méthode Graphics::EndContainer ferme un conteneur graphique précédemment ouvert par la méthode Graphics::BeginContainer .

Syntaxe

Status EndContainer(
  [in] GraphicsContainer state
);

Paramètres

[in] state

Type : GraphicsContainer

Valeur (précédemment retournée par Graphics::BeginContainer) qui identifie le conteneur à fermer.

Valeur retournée

Type : État

Si la méthode réussit, elle retourne Ok, qui est un élément de l’énumération Status .

Si la méthode échoue, elle retourne l’un des autres éléments de l’énumération Status .

Notes

Lorsque vous appelez la méthode Graphics::BeginContainer d’un objet Graphics , un bloc d’informations qui contient l’état de l’objet Graphics est placé sur une pile. La méthode Graphics::BeginContainer retourne une valeur qui identifie ce bloc d’informations. Lorsque vous passez la valeur d’identification à la méthode Graphics::EndContainer , le bloc d’informations est supprimé de la pile et est utilisé pour restaurer l’objet Graphics à l’état dans lequel il se trouvait au moment de l’appel Graphics::BeginContainer .

Les conteneurs peuvent être imbriqués ; Autrement dit, vous pouvez appeler la méthode Graphics::BeginContainer plusieurs fois avant d’appeler la méthode Graphics::EndContainer . Chaque fois que vous appelez la méthode Graphics::BeginContainer , un bloc d’informations est placé sur la pile et vous recevez un identificateur pour le bloc d’informations. Lorsque vous passez l’un de ces identificateurs à la méthode Graphics::EndContainer , l’objet Graphics est retourné à l’état dans lequel il se trouvait au moment de l’appel Graphics::BeginContainer qui a retourné cet identificateur particulier. Le bloc d’informations placé sur la pile par cet appel Graphics::BeginContainer est supprimé de la pile, et tous les blocs d’informations placés sur cette pile après cet appel Graphics::BeginContainer sont également supprimés.

Les appels à la méthode Graphics::Save placent des blocs d’informations sur la même pile que les appels à la méthode Graphics::BeginContainer . Tout comme un appel Graphics::EndContainer est associé à un appel Graphics::BeginContainer , un appel Graphics::Restore est associé à un appel Graphics::Save .

Attention Lorsque vous appelez Graphics::EndContainer, tous les blocs d’informations placés sur la pile (par Graphics::Save ou par Graphics::BeginContainer) après l’appel correspondant à Graphics::BeginContainer sont supprimés de la pile. De même, lorsque vous appelez Graphics::Restore, tous les blocs d’informations placés sur la pile (par Graphics::Save ou par Graphics::BeginContainer) après l’appel correspondant à Graphics::Save sont supprimés de la pile.
 

Exemples

L’exemple suivant crée un objet Graphics et définit sa zone de découpage. Le code commence un conteneur et définit une zone de découpage supplémentaire pour le conteneur. Le code remplit un rectangle deux fois : une fois à l’intérieur du conteneur et une fois à l’extérieur du conteneur (après l’appel à Graphics::EndContainer).

VOID Example_EndContainer(HDC hdc)
{
   Graphics graphics(hdc);

   // Set the clipping region for the Graphics object.
   graphics.SetClip(Rect(10, 10, 150, 150));

   // Begin a graphics container.
   GraphicsContainer container = graphics.BeginContainer();

   // Set an additional clipping region for the container.
   graphics.SetClip(Rect(100, 50, 100, 75));

   // Fill a red rectangle in the container.
   SolidBrush redBrush(Color(255, 255, 0, 0));
   graphics.FillRectangle(&redBrush, 0, 0, 200, 200);

   // End the container, and fill the same rectangle with blue. 
   graphics.EndContainer(container);
   SolidBrush blueBrush(Color(128, 0, 0, 255));
   graphics.FillRectangle(&blueBrush, 0, 0, 200, 200);

   // Set the clipping region to infinite, and draw 
   // the two previous clipping regions.
   graphics.ResetClip();
   Pen blackPen(Color(255, 0, 0, 0), 2.0f);
   graphics.DrawRectangle(&blackPen, 10, 10, 150, 150);
   graphics.DrawRectangle(&blackPen, 100, 50, 100, 75);
}

Configuration requise

   
Client minimal pris en charge Windows XP, Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête gdiplusgraphics.h (include Gdiplus.h)
Bibliothèque Gdiplus.lib
DLL Gdiplus.dll

Voir aussi

Graphismes

Conteneurs Graphics

Graphics::BeginContainer

Graphics::Restore

Graphics::Save

Utilisation de conteneurs Graphics