Metodo Graphics::BeginContainer(constRect&,constRect&,Unit) (gdiplusgraphics.h)
Il metodo Graphics::BeginContainer inizia un nuovo contenitore grafico.
Sintassi
GraphicsContainer BeginContainer(
[in, ref] const Rect & dstrect,
[in, ref] const Rect & srcrect,
[in] Unit unit
);
Parametri
[in, ref] dstrect
Tipo: const Rect
Riferimento a un rettangolo che, insieme a srcrect, specifica una trasformazione per il contenitore.
[in, ref] srcrect
Tipo: const Rect
Riferimento a un rettangolo che, insieme a dstrect, specifica una trasformazione per il contenitore.
[in] unit
Tipo: Unità
Unità di misura per il contenitore.
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.
I parametri dstrect e srcrect specificano una trasformazione. È la trasformazione che, quando applicata a srcrect, comporta la dstrect.
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 chiamato il metodo Graphics::BeginContainer per creare un contenitore grafico. Il codice specifica una trasformazione per il contenitore passando due rettangoli al metodo Graphics::BeginContainer . Il codice chiama Graphics::FillEllipse due volte: una volta all'interno del contenitore e una volta all'esterno del contenitore (dopo la chiamata a 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);
}
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 |