Метод Region::GetRegionScans(constMatrix*,RectF*,INT*) (gdiplusheaders.h)
Метод Region::GetRegionScans получает массив прямоугольников, приблизительных к этой области. Область преобразуется указанной матрицей перед вычислением прямоугольников.
Синтаксис
Status GetRegionScans(
const Matrix *matrix,
RectF *rects,
INT *count
);
Параметры
matrix
Указатель на объект Matrix , используемый для преобразования области.
rects
Указатель на массив объектов RectF , получающих прямоугольники.
count
Указатель на INT , получающий значение, указывающее количество прямоугольников, приблизительно приближенных к этой области. Значение допустимо, даже если rects является указателем NULL .
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .
Если метод завершается сбоем, он возвращает один из других элементов перечисления Status .
Комментарии
Для определения количества прямоугольников можно сначала использовать метод Region::GetRegionScansCount . Затем можно выделить буфер правильного размера и задать параметр rects , указывающий на буфер.
Примеры
В следующем примере создается область из пути и возвращается набор прямоугольников, приблизительных к области. Затем код рисует каждый из прямоугольников.
VOID Example_GetRegionScansRectF(HDC hdc)
{
Graphics graphics(hdc);
SolidBrush solidBrush(Color(255, 255, 0, 0));
Pen pen(Color(255, 0, 0, 0));
GraphicsPath path;
Matrix matrix;
RectF* rects = NULL;
INT count = 0;
// Create a region from a path.
path.AddEllipse(10, 10, 50, 300);
Region pathRegion(&path);
graphics.FillRegion(&solidBrush, &pathRegion);
// Get the rectangles.
graphics.GetTransform(&matrix);
count = pathRegion.GetRegionScansCount(&matrix);
rects = (RectF*)malloc(count*sizeof(RectF));
pathRegion.GetRegionScans(&matrix, rects, &count);
// Draw the rectangles.
for(INT j = 0; j < count; ++j)
graphics.DrawRectangle(&pen, rects[j]);
free(rects);
}
Требования
Требование | Значение |
---|---|
Заголовок | gdiplusheaders.h |