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 的指標,這個值表示近似這個區域的矩形數目。 即使 rectsNull 指標,此值仍有效。

傳回值

類型: 狀態

如果方法成功,它會傳回 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

另請參閱

使用區域進行點擊測試

矩陣

Rect

區域

Region::GetRegionScansCount

區域

狀態