Region::GetRegionScans(constMatrix*,Rect*,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(
  [in]  const Matrix *matrix,
  [out] Rect         *rects,
  [out] INT          *count
);

Parameter

[in] matrix

Typ: const Matrix*

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

[out] rects

Typ: Rect*

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

[out] count

Typ: INT*

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP, Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile gdiplusheaders.h (include Gdiplus.h)
Bibliothek Gdiplus.lib
DLL Gdiplus.dll

Weitere Informationen

Treffertests mit einer Region

Matrix

Rect

Region

Region::GetRegionScansCount

Regionen

Status