Freigeben über


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.

Screenshot mit Teilen von drei Auslassungspunkten: alle der ersten, 30 % der zweiten und 75 % der dritten

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

Weitere Informationen

Image

Image::GetHeight

Image::GetWidth

Bilder, Bitmaps und Metadateien

RectF

Einheit

Verwenden von Bildern, Bitmaps und Metadateien