Поделиться через


Метод GraphicsPath::GetBounds(Rect*,constMatrix*,constPen*) (gdipluspath.h)

Метод GraphicsPath::GetBounds получает ограничивающий прямоугольник для этого пути.

Синтаксис

Status GetBounds(
  [out] Rect         *bounds,
  [in]  const Matrix *matrix,
  [in]  const Pen    *pen
);

Параметры

[out] bounds

Тип: Rect*

Указатель на объект Rect , который получает ограничивающий прямоугольник.

[in] matrix

Тип: const Matrix*

Необязательный элемент. Указатель на объект Matrix , указывающий преобразование, которое будет применено к этому пути перед вычислением ограничивающего прямоугольника. Этот контур не преобразуется постоянно; преобразование используется только для процесса вычисления ограничивающего прямоугольника. Значение по умолчанию — NULL.

[in] pen

Тип: константное перо*

Необязательный элемент. Указатель на объект Pen , который влияет на размер ограничивающего прямоугольника. Ограничивающий прямоугольник, полученный в границах , будет достаточно большим, чтобы заключить этот путь при рисовании пути с помощью пера, указанного в этом параметре. Это гарантирует, что путь будет заключен в ограничивающий прямоугольник, даже если путь рисуется широким пером. Значение по умолчанию — NULL.

Возвращаемое значение

Тип: Состояние

В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .

Если метод завершается сбоем, он возвращает один из других элементов перечисления Status .

Комментарии

Прямоугольник, возвращаемый этим методом, может быть больше, чем необходимо для заключения пути, нарисованного указанным пером. Прямоугольник вычисляется таким образом, чтобы разрешить ограничение пера в острых углах и разрешить концевую крышку пера.

Примеры

В следующем примере создается путь, имеющий одну кривую и один эллипс. Код рисует путь толстым желтым пером и тонкой черной ручкой. Метод GraphicsPath::GetBounds получает адрес толстого желтого пера и вычисляет ограничивающий прямоугольник для пути. Затем код рисует ограничивающий прямоугольник.

VOID GetBoundsExample(HDC hdc)
{
   Graphics graphics(hdc);
   Pen blackPen(Color(255, 0, 0, 0), 1);
   Pen yellowPen(Color(255, 255, 255, 0), 10);
   Pen redPen(Color(255, 255, 0, 0), 1);

   Point pts[] = {Point(120,120), 
                  Point(200,130), 
                  Point(150,200), 
                  Point(130,180)};

   // Create a path that has one curve and one ellipse.
   GraphicsPath path;
   path.AddClosedCurve(pts, 4);
   path.AddEllipse(120, 220, 100, 40);

   // Draw the path with a thick yellow pen and a thin black pen.
   graphics.DrawPath(&yellowPen, &path);
   graphics.DrawPath(&blackPen, &path);
 
   // Get the path's bounding rectangle.
   Rect rect;
   path.GetBounds(&rect, NULL, &yellowPen);
   graphics.DrawRectangle(&redPen, rect);  
}

Color(255, 0, 0, 0)Color(255, 255, 0,  0)

Требования

   
Минимальная версия клиента Windows XP, Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header gdipluspath.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

Обрезка с помощью региона

Построение и рисование контуров

Создание градиента пути

GraphicsPath

Матрица

Пути

Перо

Rect