Partager via


Graphics ::BeginContainer(constRect&,constRect&,Unit) , méthode (gdiplusgraphics.h)

La méthode Graphics ::BeginContainer démarre un nouveau conteneur de graphiques.

Syntaxe

GraphicsContainer BeginContainer(
  [in, ref] const Rect & dstrect,
  [in, ref] const Rect & srcrect,
  [in]      Unit         unit
);

Paramètres

[in, ref] dstrect

Type : const Rect

Référence à un rectangle qui, avec srcrect, spécifie une transformation pour le conteneur.

[in, ref] srcrect

Type : const Rect

Référence à un rectangle qui, avec dstrect, spécifie une transformation pour le conteneur.

[in] unit

Type : Unité

Unité de mesure pour le conteneur.

Valeur retournée

Type : GraphicsContainer

Cette méthode retourne une valeur qui identifie le conteneur.

Remarques

Utilisez cette méthode pour créer des conteneurs graphiques imbriqués. Les conteneurs graphiques sont utilisés pour conserver l’état des graphiques, tels que les transformations, les régions de découpage et diverses propriétés de rendu.

La méthode Graphics ::BeginContainer retourne une valeur de type GraphicsContainer. Une fois que vous avez terminé d’utiliser un conteneur, transmettez cette valeur à la méthode Graphics ::EndContainer . Le type de données GraphicsContainer est défini dans Gdiplusenums.h.

Les paramètres dstrect et srcrect spécifient une transformation. Il s’agit de la transformation qui, lorsqu’elle est appliquée à srcrect, aboutit à dstrect.

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.
 
Pour plus d’informations sur les conteneurs graphiques, consultez Conteneurs graphiques imbriqués.

Exemples

L’exemple suivant appelle la méthode Graphics ::BeginContainer pour créer un conteneur de graphiques. Le code spécifie une transformation pour le conteneur en passant deux rectangles à la méthode Graphics ::BeginContainer . Le code appelle Graphics ::FillEllipse 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_BeginContainer2(HDC hdc)
{
   Graphics graphics(hdc);

   // Define a translation and scale transformation for the container.
   Rect srcRect(0, 0, 200, 100);
   Rect destRect(100, 100, 200, 200);

   // Create a graphics container with a (100, 100) translation 
   // and (1, 2) scale.
   GraphicsContainer container;
   container = graphics.BeginContainer(destRect, srcRect, UnitPixel);

   // Fill an ellipse in the container.
   SolidBrush redBrush(Color(255, 255, 0, 0));
   graphics.FillEllipse(&redBrush, 0, 0, 100, 60);

   // End the container.
   graphics.EndContainer(container);

   // Fill the same ellipse outside the container.
   SolidBrush blueBrush(Color(255, 0, 0, 255));
   graphics.FillEllipse(&blueBrush, 0, 0, 100, 60);
}

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 ::EndContainer

Graphics ::Restore

Graphics ::Save

Utilisation de conteneurs Graphics