Region::GetRegionScans (constMatrix*,RectF*,INT*) 方法 (gdiplusheaders.h)

Region::GetRegionScans 方法會取得近似此區域的矩形陣列。 在計算矩形之前,區域會由指定的矩陣轉換。

語法

Status GetRegionScans(
  const Matrix *matrix,
  RectF        *rects,
  INT          *count
);

參數

matrix

用於轉換區域的 Matrix 物件的指標。

rects

接收矩形之 RectF 物件的陣列指標。

count

INT 的指標,這個值表示近似這個區域的矩形數目。 即使 rectsNULL 指標,此值仍有效。

傳回值

類型: 狀態

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

另請參閱

區域

矩陣

Rect

狀態

Region::GetRegionScansCount

使用區域進行點擊測試

區域