Image::GetBounds-Methode (gdiplusheaders.h)
Die Image::GetBounds-Methode ruft das umgebende Rechteck für dieses Bild ab.
Syntax
Status GetBounds(
[out] RectF *srcRect,
[out] Unit *srcUnit
);
Parameter
[out] srcRect
Typ: RectF*
Zeiger auf ein RectF-Objekt , das das umgebende Rechteck empfängt.
[out] srcUnit
Typ: Einheit*
Zeiger auf eine Variable, die ein Element der Unit-Enumeration empfängt, das die Maßeinheit für das umgebende Rechteck angibt.
Rückgabewert
Typ: Status
Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .
Wenn die Methode fehlschlägt, wird eines der anderen Elemente der Status-Enumeration zurückgegeben.
Hinweise
Das umgebende Rechteck für eine Metadatei hat nicht unbedingt (0, 0) als obere linke Ecke. Die Koordinaten der oberen linken Ecke können negativ oder positiv sein, abhängig von den Zeichnungsbefehlen, die während der Aufzeichnung der Metadatei ausgegeben wurden. Angenommen, eine Metadatei besteht aus einer einzelnen Ellipse, die mit der folgenden Anweisung aufgezeichnet wurde:
DrawEllipse(&pen, 200, 100, 80, 40);
Dann schließt das umgebende Rechteck für die Metadatei diese eine Ellipse ein. Die obere linke Ecke des umgebenden Rechtecks ist nicht (0, 0); es wird vielmehr ein Punkt nahe sein (200, 100).
Beispiele
Im folgenden Beispiel wird ein Image-Objekt basierend auf einer Metadatei erstellt und dann das Bild zeichnerisch. Als Nächstes ruft der Code die Image::GetBounds-Methode auf, um das umgebende Rechteck für das Bild abzurufen. Der Code versucht zwei Versuche, 75 Prozent des Bilds anzuzeigen. Der erste Versuch schlägt fehl, da er (0, 0) für die obere linke Ecke des Quellrechtecks angibt. Der zweite Versuch ist erfolgreich, da die von Image::GetBounds zurückgegebenen X- und Y-Datenmember verwendet werden, um die obere linke Ecke des Quellrechtecks anzugeben.
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);
}
Der vorangehende Code hat zusammen mit einer bestimmten Datei SampleMetafile2.emf die folgende Ausgabe erzeugt. Beachten Sie, dass der erste Versuch (oben rechts), 75 Prozent des Bilds zu zeichnen, nur etwa 30 Prozent des Bilds anzeigt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP, Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | gdiplusheaders.h (include Gdiplus.h) |
Bibliothek | Gdiplus.lib |
DLL | Gdiplus.dll |