笔、线条和矩形

若要使用 Windows GDI+绘制线条,需要创建图形对象和 Pen 对象。 Graphics 对象提供实际执行绘图的方法,Pen 对象存储线条的属性,如颜色、宽度和样式。 绘制线条只是调用 Graphics 对象的 DrawLine 方法的问题。 Pen 对象的地址作为参数之一传递给 DrawLine 方法。 以下示例从 4、2 (2) 的点绘制到点 (12、6) 。

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

DrawLineGraphics 类的重载方法,因此可以通过多种方法向图形类提供参数。 例如,可以构造两个 Point 对象,并将对 Point 对象的引用作为参数传递给 DrawLine 方法。

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

构造 Pen 对象时,可以指定某些属性。 例如,一个 Pen 构造函数允许指定颜色和宽度。 以下示例绘制从 (0, 0) 到 (60, 30) 的蓝色线条 2。

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

Pen 对象还具有属性(如短划线样式),可用于指定线条的特征。 例如,以下示例从 (100,50) 绘制虚线,以 (300,80) 。

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

可以使用 Pen 对象的各种方法设置行的更多属性。 Pen::SetStartCapPen::SetEndCap 方法指定行尾的外观;终点可以是平面、正方形、圆角、三角或自定义形状。 使用 Pen::SetLineJoin 方法可以指定连接线是 (与尖角联接的) 、斜面、圆角还是剪裁。 下图显示了具有各种上限和联接样式的线条。

illustration of a two lines demonstrating rounded and circular ends, rounded and mitered corners, and two arrow styles

使用GDI+绘制矩形类似于绘制线条。 若要绘制矩形,需要 图形 对象和 Pen 对象。 Graphics 对象提供 DrawRectangle 方法,Pen 对象存储属性,如线条宽度和颜色。 Pen 对象的地址作为参数之一传递给 DrawRectangle 方法。 以下示例绘制一个矩形,其左上角为 (100,50) ,宽度为 80,高度为 40。

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

DrawRectangleGraphics 类的重载方法,因此可通过多种方式提供参数。 例如,可以构造 Rect 对象,并将对 Rect 对象的引用作为参数传递给 DrawRectangle 方法。

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

Rect 对象具有用于操作和收集有关矩形的信息的方法。 例如, 膨胀Offset 方法更改矩形的大小和位置。 Rect::IntersectsWith 方法告知矩形是否与另一个给定矩形相交,Contains 方法告知给定点是否位于矩形内。