Grafica::BeginContainer
Il metodo Graphics::BeginContainer inizia un nuovo contenitore grafico.
Sintassi
GraphicsContainer BeginContainer();
Valore restituito
Tipo: GraphicsContainer
Questo metodo restituisce un valore che identifica il contenitore.
Commenti
Usare questo metodo per creare contenitori grafici annidati. I contenitori grafici vengono usati per mantenere lo stato della grafica, ad esempio trasformazioni, aree di ritaglio e varie proprietà di rendering.
Il metodo Graphics::BeginContainer restituisce un valore di tipo GraphicsContainer. Al termine dell'uso di un contenitore, passare tale valore al metodo Graphics::EndContainer . Il tipo di dati GraphicsContainer è definito in Gdiplusenumenums.h.
Quando si chiama il metodo Graphics::BeginContainer di un oggetto Graphics, un blocco di informazioni che contiene lo stato dell'oggettoGraphics 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 l'oggetto Graphics allo stato in cui si trovava al momento della chiamata Graphics::BeginContainer .
I contenitori possono essere annidati; ovvero, è possibile chiamare il metodo Graphics::BeginContainer più volte prima di chiamare il metodo Graphics:: EndContainer . Ogni volta che si chiama il metodo Graphics::BeginContainer , un blocco di informazioni viene inserito nello stack e viene visualizzato 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 inserito nello stack da tale chiamata Graphics::BeginContainer viene rimosso dallo stack e tutti i blocchi di informazioni inseriti nello stack dopo la chiamata Graphics: :BeginContainer vengono rimossi anche.
Le chiamate al metodo Graphics::Save inseriscono le 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 impostata un'area di ritaglio per un oggetto Graphics e viene avviato un contenitore grafico. Imposta quindi un'area di ritaglio aggiuntiva per il contenitore e disegna rettangoli che illustrano l'area di ritaglio efficace all'interno del contenitore.
VOID Example_BeginContainer(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, 400, 400);
// 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, 400, 400);
// Set the clipping region to infinite, and draw the outlines
// of 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 10 Build 20348 |
Server minimo supportato | Windows 10 Build 20348 |
Intestazione | gdiplusgraphics.h |