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


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

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

Синтаксис

Status GetBounds(
  RectF        *bounds,
  const Matrix *matrix,
  const Pen    *pen
);

Параметры

bounds

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

matrix

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

pen

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

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

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

Если метод выполнен успешно, он возвращает ok, который является элементом перечисления 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.
   RectF rect;
   path.GetBounds(&rect, NULL, &yellowPen);
   graphics.DrawRectangle(&redPen, rect);  
}

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

Требования

Требование Ценность
заголовка gdipluspath.h

См. также

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

пути создания и рисования

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

GraphicsPath

матрицы

пути

пера

RectF