Gambar::Metode GetBounds (gdiplusheaders.h)

Metode Image::GetBounds mendapatkan persegi panjang pembatas untuk gambar ini.

Sintaks

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

Parameter

[out] srcRect

Jenis: RectF*

Penunjuk ke objek RectF yang menerima persegi panjang pembatas.

[out] srcUnit

Jenis: Unit*

Penunjuk ke variabel yang menerima elemen enumerasi Unit yang menunjukkan satuan ukuran untuk persegi panjang pembatas.

Nilai kembali

Jenis: Status

Jika metode berhasil, metode mengembalikan Ok, yang merupakan elemen dari enumerasi Status .

Jika metode gagal, metode mengembalikan salah satu elemen lain dari enumerasi Status .

Keterangan

Persegi panjang pembatas untuk metafile tidak selalu memiliki (0, 0) sebagai sudut kiri atasnya. Koordinat sudut kiri atas bisa negatif atau positif, tergantung pada perintah gambar yang dikeluarkan selama perekaman metafile. Misalnya, metafile terdiri dari satu elipsis yang direkam dengan pernyataan berikut:

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

Kemudian persegi panjang pembatas untuk metafile akan mengapit satu elips tersebut. Sudut kiri atas persegi panjang pembatas tidak akan (0, 0); sebaliknya, itu akan menjadi titik dekat (200, 100).

Contoh

Contoh berikut membuat objek Gambar berdasarkan metafile lalu menggambar gambar. Selanjutnya, kode memanggil metode Image::GetBounds untuk mendapatkan persegi panjang pembatas untuk gambar. Kode ini membuat dua upaya untuk menampilkan 75 persen gambar. Upaya pertama gagal karena menentukan (0, 0) untuk sudut kiri atas persegi panjang sumber. Upaya kedua berhasil karena menggunakan anggota data X dan Y yang dikembalikan oleh Image::GetBounds untuk menentukan sudut kiri atas persegi panjang sumber.

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

Kode sebelumnya, bersama dengan file tertentu, SampleMetafile2.emf, menghasilkan output berikut. Perhatikan bahwa upaya pertama (kanan atas) untuk menggambar 75 persen dari gambar hanya menunjukkan sekitar 30 persen gambar.

Cuplikan layar memperlihatkan bagian dari tiga elipsis: semua elipsis pertama, 30% dari yang kedua, dan 75% dari yang ketiga

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP, Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header gdiplusheaders.h (termasuk Gdiplus.h)
Pustaka Gdiplus.lib
DLL Gdiplus.dll

Lihat juga

Gambar

Gambar::GetHeight

Gambar::GetWidth

Gambar, bitmap, dan metafile

RectF

Unit

Menggunakan Gambar, Bitmap, dan Metafiles