Graphics::BeginContainer(constRectF&,constRectF&,Unit) (gdiplusgraphics.h)

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

Sintaxis

GraphicsContainer BeginContainer(
  const RectF & dstrect,
  const RectF & srcrect,
  Unit          unit
);

Parámetros

dstrect

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

srcrect

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

unit

Unidad de medida para el contenedor.

Valor devuelto

Tipo: 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. Al pasar 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 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 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 Graphics::EndContainer se empareja con una llamada Graphics::BeginContainer , una llamada Graphics::Restore se empareja con una llamada Graphics::Save .

Precaución

Al llamar 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 by 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, vea Contenedores de gráficos anidados.

Ejemplos

En el ejemplo siguiente se llama al método 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 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_BeginContainer3(HDC hdc)
{
   Graphics graphics(hdc);

   // Define a translation and scale transform for the container.
   RectF srcRect(0, 0, 200, 100);
   RectF 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 a rectangle in the container.
   SolidBrush redBrush(Color(255, 255, 0, 0));
   graphics.FillEllipse(&redBrush, 0, 0, 100, 60);

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

   // Fill a rectangle 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