Freigeben über


Graphics::BeginContainer

Die Graphics::BeginContainer-Methode beginnt einen neuen Grafikcontainer.

Syntax

GraphicsContainer BeginContainer();

Rückgabewert

Typ: GraphicsContainer

Diese Methode gibt einen Wert zurück, der den Container identifiziert.

Hinweise

Verwenden Sie diese Methode, um geschachtelte Grafikcontainer zu erstellen. Grafikcontainer werden verwendet, um den Grafikzustand beizubehalten, z. B. Transformationen, Beschneidungsbereiche und verschiedene Renderingeigenschaften.

Die Graphics::BeginContainer-Methode gibt einen Wert vom Typ GraphicsContainer zurück. Wenn Sie die Verwendung eines Containers abgeschlossen haben, übergeben Sie diesen Wert an die Graphics::EndContainer-Methode . Der GraphicsContainer-Datentyp ist in Gdiplusenums.h definiert.

Wenn Sie die Graphics::BeginContainer-Methode eines Graphics-Objekts aufrufen, wird ein Informationsblock, der den Zustand des Graphics-Objekts enthält, auf einem Stapel platziert. Die Graphics::BeginContainer-Methode gibt einen Wert zurück, der diesen Informationsblock identifiziert. Wenn Sie den identifizierenden Wert an die Graphics::EndContainer-Methode übergeben, wird der Informationsblock aus dem Stapel entfernt und verwendet, um das Graphics-Objekt in den Zustand wiederherzustellen, in dem es sich zum Zeitpunkt des Graphics::BeginContainer-Aufrufs befand.

Container können geschachtelt werden; Das heißt, Sie können die Graphics::BeginContainer-Methode mehrmals aufrufen, bevor Sie die Graphics::EndContainer-Methode aufrufen. Jedes Mal, wenn Sie die Graphics::BeginContainer-Methode aufrufen, wird ein Informationsblock auf dem Stapel platziert, und Sie erhalten einen Bezeichner für den Informationsblock. Wenn Sie einen dieser Bezeichner an die Graphics::EndContainer-Methode übergeben, wird das Graphics-Objekt in den Zustand zurückgegeben, in dem es sich zum Zeitpunkt des Graphics::BeginContainer-Aufrufs befand, der diesen bestimmten Bezeichner zurückgegeben hat. Der Informationsblock, der von diesem Graphics::BeginContainer-Aufruf auf dem Stapel platziert wird, wird aus dem Stapel entfernt, und alle Informationsblöcke, die nach diesem Graphics::BeginContainer-Aufruf auf diesem Stapel platziert werden, werden ebenfalls entfernt.

Aufrufe der Graphics::Save-Methode platzieren Informationsblöcke auf demselben Stapel wie Aufrufe der Graphics::BeginContainer-Methode . Ebenso wie ein Graphics::EndContainer-Aufruf mit einem Graphics::BeginContainer-Aufruf gekoppelt ist, wird ein Graphics::Restore-Aufruf mit einem Graphics::Save-Aufruf gekoppelt.

Vorsicht Wenn Sie Graphics::EndContainer aufrufen, werden alle Informationsblöcke, die nach dem entsprechenden Aufruf von Graphics::BeginContainer auf dem Stapel (von Graphics::Save oder von Graphics::BeginContainer) platziert werden, aus dem Stapel entfernt. Ebenso werden beim Aufrufen von Graphics::Restore alle Informationsblöcke, die auf dem Stapel (von Graphics::Save oder graphics ::BeginContainer) nach dem entsprechenden Aufruf von Graphics::Save platziert werden, aus dem Stapel entfernt.
 
Weitere Informationen zu Grafikcontainern finden Sie unter Geschachtelte Grafikcontainer.

Beispiele

Im folgenden Beispiel wird ein Beschneidungsbereich für ein Graphics-Objekt festgelegt und ein Grafikcontainer gestartet. Anschließend wird ein zusätzlicher Beschneidebereich für den Container festgelegt, und es werden Rechtecke geschnitten, die den effektiven Clippingbereich innerhalb des Containers veranschaulichen.

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);
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 10 Build 20348
Unterstützte Mindestversion (Server) Windows 10 Build 20348
Kopfzeile gdiplusgraphics.h

Weitere Informationen

Grafiken

Grafikcontainer

Graphics::EndContainer

Grafiken::Wiederherstellen

Grafiken::Speichern

Verwenden von Grafikcontainern