Share via


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.

Screenshot che mostra parti di tre puntini di sospensione: tutti i primi, il 30% del secondo e il 75% del terzo

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

Vedi anche

Immagine

Immagine::GetHeight

Immagine::GetWidth

Immagini, bitmap e metafile

RectF

Unità

Uso di immagini, bitmap e metafile