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 物件的指標。
[out] rects
類型: Rect*
接收矩形之 Rect 物件的陣列指標。
[out] count
類型: INT*
INT 的指標,這個值表示近似這個區域的矩形數目。 即使 rects 是 Null 指標,此值仍有效。
傳回值
類型: 狀態
如果方法成功,它會傳回 Ok,這是 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 Professional [僅限桌面應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | gdiplusheaders.h (包含 Gdiplus.h) |
程式庫 | Gdiplus.lib |
Dll | Gdiplus.dll |