Freigeben über


Graphics::BeginContainer(constRect&,constRect&,Unit)-Methode (gdiplusgraphics.h)

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

Syntax

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

Parameter

[in, ref] dstrect

Typ: const Rect

Verweis auf ein Rechteck, das zusammen mit srcrect eine Transformation für den Container angibt.

[in, ref] srcrect

Typ: const Rect

Verweis auf ein Rechteck, das zusammen mit dstrect eine Transformation für den Container angibt.

[in] unit

Typ: Einheit

Maßeinheit für den Container.

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.

Die Parameter dstrect und srcrect geben eine Transformation an. Es ist die Transformation, die bei Anwendung auf srcrect zu dstrect führt.

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 die Graphics::BeginContainer-Methode aufgerufen, um einen Grafikcontainer zu erstellen. Der Code gibt eine Transformation für den Container an, indem zwei Rechtecke an die Graphics::BeginContainer-Methode übergeben werden. Der Code ruft Graphics::FillEllipse zweimal auf: einmal innerhalb des Containers und einmal außerhalb des Containers (nach dem Aufruf von 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);
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP, Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile gdiplusgraphics.h (include Gdiplus.h)
Bibliothek Gdiplus.lib
DLL Gdiplus.dll

Weitere Informationen

Grafiken

Grafikcontainer

Graphics::EndContainer

Grafiken::Wiederherstellen

Grafiken::Speichern

Verwenden von Grafikcontainern