Image ::GetBounds, méthode (gdiplusheaders.h)

La méthode Image ::GetBounds obtient le rectangle englobant pour cette image.

Syntaxe

Status GetBounds(
  [out] RectF *srcRect,
  [out] Unit  *srcUnit
);

Paramètres

[out] srcRect

Type : RectF*

Pointeur vers un objet RectF qui reçoit le rectangle englobant.

[out] srcUnit

Type : Unité*

Pointeur vers une variable qui reçoit un élément de l’énumération Unit qui indique l’unité de mesure pour le rectangle englobant.

Valeur retournée

Type : État

Si la méthode réussit, elle retourne Ok, qui est un élément de l’énumération Status .

Si la méthode échoue, elle retourne l’un des autres éléments de l’énumération Status .

Remarques

Le rectangle englobant d’un métafichier n’a pas nécessairement (0, 0) comme coin supérieur gauche. Les coordonnées du coin supérieur gauche peuvent être négatives ou positives, selon les commandes de dessin qui ont été émises lors de l’enregistrement du métafichier. Par exemple, supposons qu’un métafichier se compose d’une seule ellipse qui a été enregistrée avec l’instruction suivante :

DrawEllipse(&pen, 200, 100, 80, 40);

Ensuite, le rectangle englobant pour le métafichier contient cette ellipse. Le coin supérieur gauche du rectangle englobant ne sera pas (0, 0) ; ce sera plutôt un point proche (200, 100).

Exemples

L’exemple suivant crée un objet Image basé sur un métafichier, puis dessine l’image. Ensuite, le code appelle la méthode Image ::GetBounds pour obtenir le rectangle englobant de l’image. Le code effectue deux tentatives pour afficher 75 % de l’image. La première tentative échoue, car elle spécifie (0, 0) pour le coin supérieur gauche du rectangle source. La deuxième tentative réussit, car elle utilise les membres de données X et Y retournés par Image ::GetBounds pour spécifier le coin supérieur gauche du rectangle source.

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);
}

Le code précédent, ainsi qu’un fichier particulier, SampleMetafile2.emf, ont produit la sortie suivante. Notez que la première tentative (en haut à droite) de dessiner 75 % de l’image affiche seulement environ 30 % de l’image.

Capture d’écran montrant des parties de trois points de suspension : l’ensemble de la première, 30 % de la seconde et 75 % du troisième

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP, Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête gdiplusheaders.h (inclure Gdiplus.h)
Bibliothèque Gdiplus.lib
DLL Gdiplus.dll

Voir aussi

Image

Image ::GetHeight

Image ::GetWidth

Images, bitmaps et métafichiers

RectF

Unité

Utilisation d’images, de bitmaps et de métafichiers