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 .
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 |