GraphicsPathIterator ::Enumerate, méthode (gdipluspath.h)
La méthode GraphicsPathIterator ::Enumerate copie les points de données du chemin d’accès vers un tableau PointF et copie les types de points du chemin dans un tableau BYTE .
Syntaxe
INT Enumerate(
[out] PointF *points,
[out] BYTE *types,
[in] INT count
);
Paramètres
[out] points
Type : PointF*
Pointeur vers un tableau qui reçoit les points de données du chemin d’accès.
[out] types
Type : BYTE*
Pointeur vers un tableau qui reçoit les types de points du chemin d’accès.
[in] count
Type : INT
Entier qui spécifie le nombre d’éléments dans le tableau de points . Il s’agit du même nombre d’éléments dans le tableau de types .
Valeur retournée
Type : INT
Cette méthode retourne le nombre de points récupérés.
Remarques
Cet objet GraphicsPathIterator est associé à un objet GraphicsPath . Cet objet GraphicsPath a un tableau de points et un tableau de types. Chaque élément du tableau de types est un octet qui spécifie le type de point et un ensemble d’indicateurs pour l’élément correspondant dans le tableau de points. Les types de points et les indicateurs possibles sont répertoriés dans l’énumération PathPointType .
Vous pouvez appeler la méthode GraphicsPathIterator ::GetCount pour déterminer le nombre de points de données dans le chemin. Le paramètre points pointe vers une mémoire tampon qui reçoit les points de données, et le paramètre types pointe vers une mémoire tampon qui reçoit les types. Avant d’appeler la méthode GraphicsPathIterator ::Enumerate , vous devez allouer de la mémoire pour ces mémoires tampons. La taille de la mémoire tampon de points doit être la valeur de retour de GraphicsPathIterator ::GetCount multipliée par sizeof(PointF). La taille de la mémoire tampon de types doit être la valeur de retour de GraphicsPathIterator ::GetCount.
Exemples
L’exemple suivant crée un objet GraphicsPath et ajoute trois lignes au chemin d’accès. Le code crée un objet GraphicsPathIterator et appelle sa méthode GraphicsPathIterator ::Enumerate pour récupérer les points de données et les types de points du chemin d’accès. Ensuite, le code affiche le nombre retourné par la méthode GraphicsPathIterator ::Enumerate .
#define BUFFER_SIZE 30
TCHAR numPointsEnum[BUFFER_SIZE];
// Add some lines to a path.
Point pts[] = {Point(20, 20),
Point(100, 20),
Point(100, 50),
Point(20, 50)};
GraphicsPath path;
path.AddLines(pts, 4);
// Create a GraphicsPathIterator object, and associate it with the path.
GraphicsPathIterator pathIterator(&path);
// Create destination arrays, and copy the path data to them.
UINT c = pathIterator.GetCount();
PointF* pEnumPoints = new PointF[c];
BYTE* pTypes = new BYTE[c];
INT count = pathIterator.Enumerate(pEnumPoints, pTypes, c);
// Confirm that the points were enumerated.
StringCchPrintf(
numPointsEnum, BUFFER_SIZE, TEXT("%d points were enumerated."), count);
MessageBox(hWnd, numPointsEnum, TEXT("Enumerate"), NULL);
delete[] pEnumPoints;
delete[] pTypes;
Configuration requise
Condition requise | Valeur |
---|---|
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 | gdipluspath.h (include Gdiplus.h) |
Bibliothèque | Gdiplus.lib |
DLL | Gdiplus.dll |
Voir aussi
Génération et dessin de tracés
GraphicsPathIterator ::CopyData