Metodo Graphics::BeginContainer(constRectF&,constRectF&,Unit) (gdiplusgraphics.h)
Il metodo Graphics::BeginContainer inizia un nuovo contenitore grafico.
Sintassi
GraphicsContainer BeginContainer(
const RectF & dstrect,
const RectF & srcrect,
Unit unit
);
Parametri
dstrect
Riferimento a un rettangolo che, insieme a srcrect, specifica una trasformazione per il contenitore.
srcrect
Riferimento a un rettangolo che, insieme a dstrect, specifica una trasformazione per il contenitore.
unit
Unità di misura per il contenitore.
Valore restituito
Tipo: 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 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 .
Quando si chiama Graphics::EndContainer, tutti i blocchi di informazioni inseriti nello stack (da Graphics ::Save o by Graphics:: BeginContainer) dopo la chiamata corrispondente a Graphics:: BeginContainer vengono rimossi dallo stack. Analogamente, quando si chiama Graphics::Restore, tutte le informazioni bloccate nello stack (da Graphics ::Save o by Graphics:: BeginContainer) dopo la chiamata corrispondente a Graphics:: Save vengono rimosse dallo stack.
Per altre informazioni sui contenitori grafici, vedere Contenitori grafici annidati.
Esempio
Nell'esempio seguente viene chiamato il metodo BeginContainer per creare un contenitore grafico. Il codice specifica una trasformazione per il contenitore passando due rettangoli al metodo 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_BeginContainer3(HDC hdc)
{
Graphics graphics(hdc);
// Define a translation and scale transform for the container.
RectF srcRect(0, 0, 200, 100);
RectF 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 a rectangle in the container.
SolidBrush redBrush(Color(255, 255, 0, 0));
graphics.FillEllipse(&redBrush, 0, 0, 100, 60);
// End the container.
graphics.EndContainer(container);
// Fill a rectangle 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 |