Método Graphics::EndContainer (gdiplusgraphics.h)

El método Graphics::EndContainer cierra un contenedor de gráficos abierto anteriormente por el método Graphics::BeginContainer .

Sintaxis

Status EndContainer(
  [in] GraphicsContainer state
);

Parámetros

[in] state

Tipo: GraphicsContainer

Valor (devuelto anteriormente por Graphics::BeginContainer) que identifica el contenedor que se va a cerrar.

Valor devuelto

Tipo: Estado

Si el método se realiza correctamente, devuelve Ok, que es un elemento de la enumeración Status .

Si se produce un error en el método, devuelve uno de los otros elementos de la enumeración Status .

Comentarios

Cuando se llama al método Graphics::BeginContainer de un objeto Graphics , se coloca un bloque de información que contiene el estado del objeto Graphics en una pila. El método Graphics::BeginContainer devuelve un valor que identifica ese bloque de información. Cuando se pasa el valor de identificación al método Graphics::EndContainer , el bloque de información se quita de la pila y se usa para restaurar el objeto Graphics al estado en el que estaba en el momento de la llamada a Graphics::BeginContainer .

Los contenedores se pueden anidar; es decir, puede llamar al método Graphics::BeginContainer varias veces antes de llamar al método Graphics::EndContainer . Cada vez que se llama al método Graphics::BeginContainer , se coloca un bloque de información en la pila y se recibe un identificador para el bloque de información. Cuando se pasa uno de esos identificadores al método Graphics::EndContainer , el objeto Graphics se devuelve al estado en que estaba en el momento de la llamada Graphics::BeginContainer que devolvió ese identificador determinado. El bloque de información colocado en la pila por esa llamada a Graphics::BeginContainer se quita de la pila y también se quitan todos los bloques de información colocados en esa pila después de esa llamada a Graphics::BeginContainer .

Las llamadas al método Graphics::Save colocan bloques de información en la misma pila que las llamadas al método Graphics::BeginContainer . Al igual que una llamada a Graphics::EndContainer se empareja con una llamada Graphics::BeginContainer , se empareja una llamada Graphics::Restore con una llamada Graphics::Save .

Precaución Cuando se llama a Graphics::EndContainer, todos los bloques de información colocados en la pila (por Graphics::Save o por Graphics::BeginContainer) después de la llamada correspondiente a Graphics::BeginContainer se quitan de la pila. Del mismo modo, cuando se llama a Graphics::Restore, todos los bloques de información colocados en la pila (por Graphics::Save o por Graphics::BeginContainer) después de la llamada correspondiente a Graphics::Save se quitan de la pila.
 

Ejemplos

En el ejemplo siguiente se crea un objeto Graphics y se establece su región de recorte. El código comienza un contenedor y establece una región de recorte adicional para el contenedor. El código rellena un rectángulo dos veces: una vez dentro del contenedor y una vez fuera del contenedor (después de la llamada a 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);
}

Requisitos

   
Cliente mínimo compatible Windows XP, Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado gdiplusgraphics.h (include Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

Elementos gráficos

Contenedores de gráficos

Graphics::BeginContainer

Graphics::Restore

Graphics::Save

Uso de contenedores de gráficos