Share via


Graphics::EndContainer-Methode (gdiplusgraphics.h)

Die Graphics::EndContainer-Methode schließt einen Grafikcontainer, der zuvor von der Graphics::BeginContainer-Methode geöffnet wurde.

Syntax

Status EndContainer(
  [in] GraphicsContainer state
);

Parameter

[in] state

Typ: GraphicsContainer

Wert (zuvor von Graphics::BeginContainer zurückgegeben), der den zu schließenden Container identifiziert.

Rückgabewert

Typ: Status

Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .

Wenn die Methode fehlschlägt, gibt sie eines der anderen Elemente der Status-Enumeration zurück.

Hinweise

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 . Genau 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 von Graphics::BeginContainer) nach dem entsprechenden Aufruf von Graphics::Save platziert werden, aus dem Stapel entfernt.
 

Beispiele

Im folgenden Beispiel wird ein Graphics-Objekt erstellt und dessen Beschneidungsbereich festgelegt. Der Code beginnt einen Container und legt einen zusätzlichen Ausschneidebereich für den Container fest. Der Code füllt ein Rechteck zweimal aus: einmal innerhalb des Containers und einmal außerhalb des Containers (nach dem Aufruf von Graphics::EndContainer).

VOID Example_EndContainer(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, 200, 200);

   // 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, 200, 200);

   // Set the clipping region to infinite, and draw 
   // 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 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::BeginContainer

Grafiken::Wiederherstellen

Grafiken::Speichern

Verwenden von Grafikcontainern