Método Graphics::BeginContainer(constRect&,constRect&,Unit) (gdiplusgraphics.h)

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

Sintaxis

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

Parámetros

[in, ref] dstrect

Tipo: const Rect

Referencia a un rectángulo que, junto con srcrect, especifica una transformación para el contenedor.

[in, ref] srcrect

Tipo: const Rect

Referencia a un rectángulo que, junto con dstrect, especifica una transformación para el contenedor.

[in] unit

Tipo: Unidad

Unidad de medida para el contenedor.

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.

Los parámetros dstrect y srcrect especifican una transformación. Es la transformación que, cuando se aplica a srcrect, da como resultado dstrect.

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 llama al método Graphics::BeginContainer para crear un contenedor de gráficos. El código especifica una transformación para el contenedor pasando dos rectángulos al método Graphics::BeginContainer . El código llama a Graphics::FillEllipse dos veces: una vez dentro del contenedor y una vez fuera del contenedor (después de la llamada a 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);
}

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

Graphics::Restore

Graphics::Save

Uso de contenedores de gráficos