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 |