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 指標,此值仍有效。
傳回值
類型: 狀態
如果方法成功,它會傳回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);
}
規格需求
需求 | 值 |
---|---|
標頭 | gdiplusheaders.h |