Partager via


Méthode Region::GetRegionScans(constMatrix*,Rect*,INT*) (gdiplusheaders.h)

La méthode Region::GetRegionScans obtient un tableau de rectangles qui se rapprochent de cette région. La région est transformée par une matrice spécifiée avant que les rectangles ne soient calculés.

Syntaxe

Status GetRegionScans(
  [in]  const Matrix *matrix,
  [out] Rect         *rects,
  [out] INT          *count
);

Paramètres

[in] matrix

Type : matrice* const

Pointeur vers un objet Matrix utilisé pour transformer la région.

[out] rects

Type : Rect*

Pointeur vers un tableau d’objets Rect qui reçoit les rectangles.

[out] count

Type : INT*

Pointeur vers un INT qui reçoit une valeur qui indique le nombre de rectangles qui se rapprochent de cette région. La valeur est valide même si rects est un pointeur NULL .

Valeur retournée

Type : État

Si la méthode réussit, elle retourne Ok, qui est un élément de l’énumération Status .

Si la méthode échoue, elle retourne l’un des autres éléments de l’énumération Status .

Notes

La méthode Region::GetRegionScansCount peut d’abord être utilisée pour déterminer le nombre de rectangles. Ensuite, vous pouvez allouer une mémoire tampon qui correspond à la taille correcte et définir le paramètre rects pour qu’il pointe vers la mémoire tampon.

Exemples

L’exemple suivant crée une région à partir d’un chemin d’accès et obtient un ensemble de rectangles qui se rapprochent de la région. Le code dessine ensuite chacun des rectangles.

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

Spécifications

   
Client minimal pris en charge Windows XP, Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête gdiplusheaders.h (inclure Gdiplus.h)
Bibliothèque Gdiplus.lib
DLL Gdiplus.dll

Voir aussi

Test d’accès avec une région

Matrice

Rect

Région

Region::GetRegionScansCount

Régions

État