Region::GetRegionScans (constMatrix*,RectF*,INT*) 方法 (gdiplusheaders.h)
Region::GetRegionScans 方法获取与该区域近似的矩形数组。 在计算矩形之前,区域由指定的矩阵进行转换。
语法
Status GetRegionScans(
const Matrix *matrix,
RectF *rects,
INT *count
);
参数
matrix
指向用于转换区域的 Matrix 对象的指针。
rects
指向接收矩形的 RectF 对象的数组的指针。
count
指向 INT 的指针,该 INT 接收一个值,该值指示与该区域近似的矩形数。 即使 rects 是 NULL 指针,该值也有效。
返回值
类型: 状态
如果方法成功,则返回 Ok,这是 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);
}
要求
要求 | 值 |
---|---|
Header | gdiplusheaders.h |