Partager via


CDC::Arc

Dessine un arc elliptique.

BOOL Arc(
   int x1,
   int y1,
   int x2,
   int y2,
   int x3,
   int y3,
   int x4,
   int y4 
);
BOOL Arc(
   LPCRECT lpRect,
   POINT ptStart,
   POINT ptEnd 
);

Paramètres

  • x1
    Spécifie la coordonnée x du coin supérieur gauche du rectangle englobant (en unités logiques).

  • y1
    Spécifie l'ordonnée du coin supérieur gauche du rectangle englobant (en unités logiques).

  • x2
    Spécifie la coordonnée x du coin inférieur droit du rectangle englobant (en unités logiques).

  • y2
    Spécifie l'ordonnée du coin inférieur droit du rectangle englobant (en unités logiques).

  • x3
    Spécifie la coordonnée x du point qui définit le point de départ de l'arc (en unités logiques).Ce point ne doit pas exactement reposer sur l'arc.

  • y3
    Spécifie la coordonnée y du point qui définit le point de départ de l'arc (en unités logiques).Ce point ne doit pas exactement reposer sur l'arc.

  • x4
    Spécifie la coordonnée x du point qui définit le point de terminaison de l'arc (en unités logiques).Ce point ne doit pas exactement reposer sur l'arc.

  • y4
    Spécifie la coordonnée y du point qui définit le point de terminaison de l'arc (en unités logiques).Ce point ne doit pas exactement reposer sur l'arc.

  • lpRect
    Spécifie le rectangle englobant (en unités logiques).Vous pouvez passer LPRECT ou un objet de CRect pour ce paramètre.

  • ptStart
    Spécifie les coordonnées x et y du point qui définit le point de départ de l'arc (en unités logiques).Ce point ne doit pas exactement reposer sur l'arc.Vous pouvez passer une structure de POINT ou un objet de CPoint pour ce paramètre.

  • ptEnd
    Spécifie les coordonnées x et y du point qui définit le point de terminaison de l'arc (en unités logiques).Ce point ne doit pas exactement reposer sur l'arc.Vous pouvez passer une structure de POINT ou un objet d' CPoint pour ce paramètre.

Valeur de retour

Une valeur différente de zéro si la fonction est réussie ; sinon 0.

Notes

L'arc est dessiné à l'aide de la fonction est un segment de l'ellipse définie par le rectangle englobant spécifié.

Le point de départ réel de l'arc est le point auquel un rayon dessiné du centre du rectangle englobant via le point de départ spécifiée croise l'ellipse.Le point de terminaison réel de l'arc est le point auquel un rayon dessiné du centre du rectangle englobant via le point de terminaison spécifié coupe l'ellipse.l'arc est dessiné dans un sens anti-horaire.Étant donné qu'un arc n'est pas une figure fermée, il n'est pas rempli.La fois la largeur et la hauteur du rectangle doit être supérieure à 2 unités et moins de 32.767 unités.

Exemple

void CDCView::DrawArc(CDC* pDC)
{
   // Fill the client area with a thin circle. The circle's
   // interior is not filled. The circle's perimeter is
   // blue from 6 o'clock to 3 o'clock and red from 3
   // o'clock to 6 o'clock.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens.
   CPen penBlue;
   CPen penRed;
   CPen* pOldPen;

   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen.

   pOldPen = pDC->SelectObject(&penBlue);

   pDC->Arc(rectClient,
      CPoint(rectClient.right, rectClient.CenterPoint().y),
      CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw from 6 o'clock to 3 o'clock, counterclockwise,
   // in a red pen.
   pDC->SelectObject(&penRed);

   // Keep the same parameters, but reverse start
   // and end points.
   pDC->Arc(rectClient,
      CPoint(rectClient.CenterPoint().x, rectClient.right),
      CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CDC, classe

Graphique de la hiérarchie

CDC::Chord

Arc

POINT, structure

RECT, structure