Freigeben über


Region::GetRegionScans(constMatrix*,RectF*,INT*)-Methode (gdiplusheaders.h)

Die Region::GetRegionScans-Methode ruft ein Array von Rechtecken ab, die sich diesem Bereich annähern. Der Bereich wird von einer angegebenen Matrix transformiert, bevor die Rechtecke berechnet werden.

Syntax

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

Parameter

matrix

Zeiger auf ein Matrix-Objekt , das zum Transformieren des Bereichs verwendet wird.

rects

Zeiger auf ein Array von RectF-Objekten , das die Rechtecke empfängt.

count

Zeiger auf einen INT-Wert , der einen Wert empfängt, der die Anzahl der Rechtecke angibt, die sich diesem Bereich annähern. Der Wert ist auch dann gültig, wenn Rects ein NULL-Zeiger sind.

Rückgabewert

Typ: Status

Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .

Wenn die Methode fehlschlägt, wird eines der anderen Elemente der Status-Enumeration zurückgegeben.

Hinweise

Die Region::GetRegionScansCount-Methode kann zuerst verwendet werden, um die Anzahl der Rechtecke zu bestimmen. Anschließend können Sie einen Puffer mit der richtigen Größe zuordnen und den Rects-Parameter so festlegen, dass er auf den Puffer zeigt.

Beispiele

Im folgenden Beispiel wird eine Region aus einem Pfad erstellt und eine Reihe von Rechtecks abgerufen, die sich der Region annähern. Der Code zeichnet dann die einzelnen Rechtecke.

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);
}

Anforderungen

Anforderung Wert
Header gdiplusheaders.h

Weitere Informationen

Region

Matrix

Rect

Status

Region::GetRegionScansCount

Treffertests mit einer Region

Regionen