Метод Region::GetRegionScans(constMatrix*,Rect*,INT*) (gdiplusheaders.h)
Метод Region::GetRegionScans получает массив прямоугольников, приближенных к этой области. Область преобразуется указанной матрицей перед вычислением прямоугольников.
Синтаксис
Status GetRegionScans(
[in] const Matrix *matrix,
[out] Rect *rects,
[out] INT *count
);
Параметры
[in] matrix
Тип: const Matrix*
Указатель на объект Matrix , используемый для преобразования области.
[out] rects
Тип: Rect*
Указатель на массив объектов Rect , получающих прямоугольники.
[out] count
Тип: INT*
Указатель на INT, получающий значение, указывающее количество прямоугольников, приближенных к этой области. Значение допустимо, даже если rects является указателем NULL .
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .
Если метод завершается ошибкой, он возвращает один из других элементов перечисления Status .
Комментарии
Метод Region::GetRegionScansCount можно сначала использовать для определения количества прямоугольников. Затем можно выделить буфер правильного размера и задать параметр rects , указывающий на буфер.
Примеры
В следующем примере создается область из пути и возвращается набор прямоугольников, приближенных к области. Затем код рисует каждый из прямоугольников.
VOID Example_GetRegionScansRect(HDC hdc)
{
Graphics graphics(hdc);
SolidBrush solidBrush(Color(255, 255, 0, 0));
Pen pen(Color(255, 0, 0, 0));
GraphicsPath path;
Matrix matrix;
Rect* 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 = (Rect*)malloc(count*sizeof(Rect));
pathRegion.GetRegionScans(&matrix, rects, &count);
// Draw the rectangles.
for(INT j = 0; j < count; ++j)
graphics.DrawRectangle(&pen, rects[j]);
free(rects);
}
Требования
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdiplusheaders.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |