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 .

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

Vedi anche

Grafica

Contenitori di oggetti Graphics

Grafica::EndContainer

Grafica::Restore

Grafica::Salva

Uso di contenitori di oggetti Graphics