Share via


Metodo Graphics::EndContainer (gdiplusgraphics.h)

Il metodo Graphics::EndContainer chiude un contenitore grafico aperto in precedenza dal metodo Graphics::BeginContainer .

Sintassi

Status EndContainer(
  [in] GraphicsContainer state
);

Parametri

[in] state

Tipo: GraphicsContainer

Valore (precedentemente restituito da Graphics::BeginContainer) che identifica il contenitore da chiudere.

Valore restituito

Tipo: Stato

Se il metodo ha esito positivo, restituisce Ok, che è un elemento dell'enumerazione Status .

Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .

Commenti

Quando si chiama il metodo Graphics::BeginContainer di un oggetto Graphics , un blocco di informazioni che contiene lo stato dell'oggetto Graphics viene inserito in uno stack. Il metodo Graphics::BeginContainer restituisce un valore che identifica tale blocco di informazioni. Quando si passa il valore di identificazione al metodo Graphics::EndContainer , il blocco di informazioni viene rimosso dallo stack e viene usato per ripristinare lo stato in cui si trovava l'oggetto Graphics al momento della chiamata a Graphics::BeginContainer .

I contenitori possono essere annidati; vale a dire, è possibile chiamare il metodo Graphics::BeginContainer più volte prima di chiamare il metodo Graphics::EndContainer . Ogni volta che si chiama il metodo Graphics::BeginContainer , viene inserito un blocco di informazioni nello stack e si riceve un identificatore per il blocco di informazioni. Quando si passa uno di questi identificatori al metodo Graphics::EndContainer , l'oggetto Graphics viene restituito allo stato in cui si trovava al momento della chiamata Graphics::BeginContainer che ha restituito tale identificatore specifico. Il blocco di informazioni posizionato nello stack da tale chiamata Graphics::BeginContainer viene rimosso dallo stack e tutti i blocchi di informazioni inseriti nello stack dopo la rimozione della chiamata a Graphics::BeginContainer .

Le chiamate al metodo Graphics::Save inseriscono blocchi di informazioni sullo stesso stack delle chiamate al metodo Graphics::BeginContainer . Proprio come una chiamata Graphics::EndContainer è associata a una chiamata Graphics::BeginContainer , una chiamata Graphics::Restore viene associata a una chiamata Graphics::Save .

Attenzione Quando chiami Graphics::EndContainer, tutti i blocchi di informazioni posizionati nello stack (da Graphics::Save o da Graphics::BeginContainer) dopo la chiamata corrispondente a Graphics::BeginContainer vengono rimossi dallo stack. Analogamente, quando chiami Graphics::Restore, tutti i blocchi di informazioni posizionati nello stack (da Graphics::Save o da Graphics::BeginContainer) dopo la chiamata corrispondente a Graphics::Save vengono rimossi dallo stack.
 

Esempio

Nell'esempio seguente viene creato un oggetto Graphics e viene impostata l'area di ritaglio. Il codice inizia un contenitore e imposta un'area di ritaglio aggiuntiva per il contenitore. Il codice riempie un rettangolo due volte: una all'interno del contenitore e una volta all'esterno del contenitore (dopo la chiamata a 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);
}

Requisiti

   
Client minimo supportato Windows XP, Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione gdiplusgraphics.h (include Gdiplus.h)
Libreria Gdiplus.lib
DLL Gdiplus.dll

Vedi anche

Grafica

Contenitori di oggetti Graphics

Graphics::BeginContainer

Grafica::Restore

Grafica::Salva

Uso di contenitori di oggetti Graphics