Метод 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 |