Image::GetBounds 方法 (gdiplusheaders.h)

Image::GetBounds 方法获取此图像的边界矩形。

语法

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

参数

[out] srcRect

类型: RectF*

指向接收边界矩形的 RectF 对象的指针。

[out] srcUnit

类型: 单位*

指向一个变量的指针,该变量接收 Unit 枚举的元素,该元素指示边界矩形的度量单位。

返回值

类型: 状态

如果方法成功,则返回 Ok,这是 Status 枚举的元素。

如果 方法失败,它将返回 Status 枚举的其他元素之一。

注解

图元文件边框的左上角不一定 (0, 0) 。 左上角的坐标可以是负数,也可以是正值,具体取决于在录制图元文件期间发出的绘图命令。 例如,假设图元文件由使用以下 语句记录的单个椭圆组成:

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

然后,图元文件边界矩形将包围该椭圆。 边框的左上角不会 (0, 0) ;相反,这将是一个接近 (200,100) 的点。

示例

以下示例基于图元文件创建 Image 对象,然后绘制图像。 接下来,代码调用 Image::GetBounds 方法以获取图像的边框。 该代码尝试两次显示 75% 的图像。 第一次尝试失败,因为它指定了源矩形左上角 (0, 0) 。 第二次尝试成功,因为它使用 Image::GetBounds 返回的 XY 数据成员来指定源矩形的左上角。

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

上述代码以及特定文件SampleMetafile2.emf生成了以下输出。 请注意,第一次尝试 (右上角) 绘制 75% 的图像仅显示约 30% 的图像。

显示三个椭圆部分的屏幕截图:所有第一个椭圆、第二个椭圆的 30% 和第三个椭圆的 75%

要求

要求
最低受支持的客户端 Windows XP、Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 gdiplusheaders.h (包括 Gdiplus.h)
Library Gdiplus.lib
DLL Gdiplus.dll

另请参阅

图像

Image::GetHeight

Image::GetWidth

图像、位图和图元文件

RectF

单位

使用图像、位图和图元文件