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