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