Graphics::BeginContainer

El método Graphics::BeginContainer comienza un nuevo contenedor de gráficos.

Sintaxis

GraphicsContainer BeginContainer();

Valor devuelto

Tipo: GraphicsContainer

Este método devuelve un valor que identifica el contenedor.

Comentarios

Use este método para crear contenedores de gráficos anidados. Los contenedores de gráficos se usan para conservar el estado de los gráficos, como transformaciones, regiones de recorte y varias propiedades de representación.

El método Graphics::BeginContainer devuelve un valor de tipo GraphicsContainer. Cuando haya terminado de usar un contenedor, pase ese valor al método Graphics::EndContainer . El tipo de datos GraphicsContainer se define en Gdiplusenums.h.

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.
 
Para obtener más información sobre los contenedores de gráficos, consulte Contenedores de gráficos anidados.

Ejemplos

En el ejemplo siguiente se establece una región de recorte para un objeto Graphics y se inicia un contenedor de gráficos. A continuación, establece una región de recorte adicional para el contenedor y dibuja rectángulos que muestran la región de recorte eficaz dentro del contenedor.

VOID Example_BeginContainer(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, 400, 400);

   // 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, 400, 400);

   // Set the clipping region to infinite, and draw the outlines 
   // of 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 Compilación 20348 de Windows 10
Servidor mínimo compatible Compilación 20348 de Windows 10
Encabezado gdiplusgraphics.h

Consulte también

Elementos gráficos

Contenedores de gráficos

Graphics::EndContainer

Graphics::Restore

Graphics::Save

Uso de contenedores de gráficos