Stylos, lignes et rectangles

Pour dessiner des lignes avec Windows GDI+, vous devez créer un objet Graphics et un objet Pen . L’objet Graphics fournit les méthodes qui effectuent réellement le dessin, et l’objet Pen stocke les attributs de la ligne, tels que la couleur, la largeur et le style. Le dessin d’une ligne consiste simplement à appeler la méthode DrawLine de l’objet Graphics . L’adresse de l’objet Pen est passée comme l’un des arguments à la méthode DrawLine. L’exemple suivant trace une ligne du point (4, 2) au point (12, 6).

myGraphics.DrawLine(&myPen, 4, 2, 12, 6);

DrawLine étant une méthode surchargée de la classe Graphics , vous pouvez lui fournir des arguments de plusieurs façons. Par exemple, vous pouvez construire deux objets Point et passer des références aux objets Point en tant qu’arguments à la méthode DrawLine.

Point myStartPoint(4, 2);
Point myEndPoint(12, 6);
myGraphics.DrawLine(&myPen, myStartPoint, myEndPoint);

Vous pouvez spécifier certains attributs lorsque vous construisez un objet Pen . Par exemple, un constructeur de stylet vous permet de spécifier la couleur et la largeur. L’exemple suivant dessine une ligne bleue de largeur 2 de (0, 0) à (60, 30).

Pen myPen(Color(255, 0, 0, 255), 2);
myGraphics.DrawLine(&myPen, 0, 0, 60, 30);

L’objet Pen possède également des attributs, tels que le style de tiret, que vous pouvez utiliser pour spécifier les caractéristiques de la ligne. Par exemple, l’exemple suivant dessine une ligne pointillée de (100, 50) à (300, 80).

myPen.SetDashStyle(DashStyleDash);
myGraphics.DrawLine(&myPen, 100, 50, 300, 80);

Vous pouvez utiliser différentes méthodes de l’objet Pen pour définir de nombreux autres attributs de la ligne. Les méthodes Pen::SetStartCap et Pen::SetEndCap spécifient l’apparence des extrémités de la ligne ; les extrémités peuvent être plates, carrées, arrondies, triangulaires ou une forme personnalisée. La méthode Pen::SetLineJoin vous permet de spécifier si les lignes connectées sont mitrées (jointes avec des coins pointus), biseautées, arrondies ou clippées. L’illustration suivante montre des lignes avec différents styles de majuscule et de jointure.

illustration d’une ligne de deux extrémités arrondies et circulaires, d’angles arrondis et à mitre, et de deux styles de flèche

Le dessin de rectangles avec GDI+ est similaire au dessin de lignes. Pour dessiner un rectangle, vous avez besoin d’un objet Graphics et d’un objet Pen . L’objet Graphics fournit une méthode DrawRectangle , et l’objet Pen stocke des attributs, tels que la largeur de ligne et la couleur. L’adresse de l’objet Pen est passée comme l’un des arguments à la méthode DrawRectangle. L’exemple suivant dessine un rectangle avec son coin supérieur gauche à (100, 50), une largeur de 80 et une hauteur de 40.

myGraphics.DrawRectangle(&myPen, 100, 50, 80, 40);

DrawRectangle étant une méthode surchargée de la classe Graphics , vous pouvez lui fournir des arguments de plusieurs façons. Par exemple, vous pouvez construire un objet Rect et passer une référence à l’objet Rect en tant qu’argument à la méthode DrawRectangle.

Rect myRect(100, 50, 80, 40);
myGraphics.DrawRectangle(&myPen, myRect);

Un objet Rect possède des méthodes pour manipuler et collecter des informations sur le rectangle. Par exemple, les méthodes Gonfler et Offset modifient la taille et la position du rectangle. La méthode Rect::IntersectsWith vous indique si le rectangle croise un autre rectangle donné, et la méthode Contains vous indique si un point donné se trouve à l’intérieur du rectangle.