Share via


GraphicsPath ::GetPathPoints(PointF*,INT) , méthode (gdipluspath.h)

La méthode GraphicsPath ::GetPathPoints obtient le tableau de points de ce chemin d’accès. Le tableau contient les points de terminaison et les points de contrôle des lignes et des splines de Bézier utilisées pour dessiner le chemin.

Syntaxe

Status GetPathPoints(
  PointF *points,
  INT    count
);

Paramètres

points

Pointeur vers un tableau d’objets PointF qui reçoit les points de données. Vous devez allouer de la mémoire pour ce tableau. Vous pouvez appeler la méthode GraphicsPath ::GetPointCount pour déterminer la taille requise du tableau. La taille, en octets, doit être la valeur renvoyée de GraphicsPath ::GetPointCount multipliée par sizeof(PointF).

count

Entier qui spécifie le nombre d’éléments dans le tableau de points. Définissez ce paramètre sur la valeur de retour de la méthode GraphicsPath ::GetPointCount .

Valeur retournée

Type :Status

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 .

Remarques

Un 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 indicateurs possibles sont répertoriés dans l’énumération PathPointType.

Exemples

L’exemple suivant crée et dessine un chemin comportant une ligne, un rectangle, une ellipse et une courbe. Le code appelle la méthode GraphicsPath ::GetPointCount du chemin d’accès pour déterminer le nombre de points de données stockés dans le chemin. Le code alloue une mémoire tampon suffisamment grande pour recevoir le tableau de points de données et transmet l’adresse de cette mémoire tampon à la méthode GraphicsPath ::GetPathPoints . Enfin, le code dessine chacun des points de données du chemin d’accès.

VOID GetPathPointsExample(HDC hdc)
{
   Graphics graphics(hdc);

   // Create a path that has a line, a rectangle, an ellipse, and a curve.
   GraphicsPath path;

   PointF points[] = {
      PointF(200, 200),
      PointF(250, 240),
      PointF(200, 300),
      PointF(300, 310),
      PointF(250, 350)};

   path.AddLine(20, 100, 150, 200);
   path.AddRectangle(Rect(40, 30, 80, 60));
   path.AddEllipse(Rect(200, 30, 200, 100));
   path.AddCurve(points, 5);

   // Draw the path.
   Pen pen(Color(255, 0, 0, 255));
   graphics.DrawPath(&pen, &path);

   // Get the path points.
   INT count = path.GetPointCount();
   PointF* dataPoints = new PointF[count];  
   path.GetPathPoints(dataPoints, count);

   // Draw the path's data points.
   SolidBrush brush(Color(255, 255, 0, 0));
   for(INT j = 0; j < count; ++j)
   {
      graphics.FillEllipse(
         &brush, 
         dataPoints[j].X - 3.0f, 
         dataPoints[j].Y - 3.0f,
         6.0f,
         6.0f);
   }
   delete [] dataPoints; 
}
Color(255, 255, 0,  0)

Configuration requise

Condition requise Valeur
En-tête gdipluspath.h

Voir aussi

Graphicspath

GraphicsPath ::GetPathData

GraphicsPath ::GetPathTypes

GraphicsPath ::GetPointCount

PathData

PathPointType

Pointf

Découpage avec une région

Génération et dessin de tracés

Création d’un dégradé de chemin

Chemins d’accès