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.
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 |