Metodo Image::GetBounds (gdiplusheaders.h)
Il metodo Image::GetBounds ottiene il rettangolo di selezione per questa immagine.
Sintassi
Status GetBounds(
[out] RectF *srcRect,
[out] Unit *srcUnit
);
Parametri
[out] srcRect
Tipo: RectF*
Puntatore a un oggetto RectF che riceve il rettangolo di selezione.
[out] srcUnit
Tipo: Unità*
Puntatore a una variabile che riceve un elemento dell'enumerazione Unit che indica l'unità di misura per il rettangolo di selezione.
Valore restituito
Tipo: Stato
Se il metodo ha esito positivo, restituisce Ok, ovvero un elemento dell'enumerazione Status .
Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .
Commenti
Il rettangolo di selezione per un metafile non ha necessariamente (0, 0) come angolo superiore sinistro. Le coordinate dell'angolo superiore sinistro possono essere negative o positive, a seconda dei comandi di disegno rilasciati durante la registrazione del metafile. Si supponga, ad esempio, che un metafile sia costituito da un singolo ellisse registrato con l'istruzione seguente:
DrawEllipse(&pen, 200, 100, 80, 40);
Quindi il rettangolo di delimitazione per il metafile racchiuderà i puntini di sospensione. L'angolo superiore sinistro del rettangolo di selezione non sarà (0, 0); piuttosto, sarà un punto vicino (200, 100).
Esempio
L'esempio seguente crea un oggetto Image basato su un metafile e quindi disegna l'immagine. Il codice chiama quindi il metodo Image::GetBounds per ottenere il rettangolo di selezione per l'immagine. Il codice esegue due tentativi di visualizzazione del 75% dell'immagine. Il primo tentativo ha esito negativo perché specifica (0, 0) per l'angolo superiore sinistro del rettangolo di origine. Il secondo tentativo ha esito positivo perché usa i membri dati X e Yrestituiti da Image::GetBounds per specificare l'angolo superiore sinistro del rettangolo di origine.
VOID Example_GetBounds(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"SampleMetafile2.emf");
graphics.DrawImage(&image, 0, 0);
// Get the bounding rectangle for the image (metafile).
RectF boundsRect;
Unit unit;
image.GetBounds(&boundsRect, &unit);
// Attempt to draw 75 percent of the image.
// Less than 75 percent of the image will be visible because the
// upper-left corner of the image's bounding rectangle is not (0, 0).
RectF dstRect(250.0f, 0.0f, 100.0f, 50.0f);
graphics.DrawImage(
&image,
dstRect, // destination rectangle
0.0f, 0.0f, // upper-left corner of source rectangle
0.75f*boundsRect.Width, // width of source rectangle
boundsRect.Height, // height of source rectangle
UnitPixel);
// Draw 75 percent of the image.
dstRect.Y = 80.0f;
graphics.DrawImage(
&image,
dstRect, // destination rectangle
boundsRect.X, boundsRect.Y, // upper-left corner of source rectangle
0.75f*boundsRect.Width, // width of source rectangle
boundsRect.Height, // height of source rectangle
UnitPixel);
}
Il codice precedente, insieme a un determinato file, SampleMetafile2.emf, ha prodotto l'output seguente. Si noti che il primo tentativo (in alto a destra) di disegnare il 75% dell'immagine mostra solo il 30% dell'immagine.
Requisiti
Requisito | Valore |
---|---|
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 | gdiplusheaders.h (include Gdiplus.h) |
Libreria | Gdiplus.lib |
DLL | Gdiplus.dll |