Перья, линии и прямоугольники
Для рисования линий с помощью Windows GDI+ необходимо создать графический объект и объект Pen . Объект Graphics предоставляет методы, которые фактически выполняют рисование, а объект Pen хранит атрибуты линии, такие как цвет, ширина и стиль. Рисование линии — это просто вызов метода DrawLine объекта Graphics . Адрес объекта Pen передается в качестве одного из аргументов в метод DrawLine. В следующем примере рисуется линия от точки (4, 2) до точки (12, 6).
myGraphics.DrawLine(&myPen, 4, 2, 12, 6);
DrawLine — это перегруженный метод класса Graphics , поэтому существует несколько способов предоставления ему аргументов. Например, можно создать два объекта Point и передать ссылки на объекты Point в качестве аргументов в метод DrawLine.
Point myStartPoint(4, 2);
Point myEndPoint(12, 6);
myGraphics.DrawLine(&myPen, myStartPoint, myEndPoint);
При создании объекта Pen можно указать определенные атрибуты. Например, один конструктор пера позволяет указать цвет и ширину. В следующем примере рисуется синяя линия шириной 2 от (0, 0) до (60, 30).
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::SetStartCap и Pen::SetEndCap указывают внешний вид конца строки; концы могут быть плоскими, квадратными, скругленными, треугольными или настраиваемыми. Метод Pen::SetLineJoin позволяет указать, являются ли соединенные линии мизерными (соединенными острыми углами), скошенными, скругленными или обрезанными. На приведенном ниже рисунке показаны линии с различными стилями концов и мест соединения.
Рисование прямоугольников в GDI+ похоже на рисование линий. Чтобы нарисовать прямоугольник, вам потребуется объект Graphics и объект Pen . Объект Graphics предоставляет метод DrawRectangle , а объект Pen хранит атрибуты, такие как ширина и цвет линий. Адрес объекта Pen передается в качестве одного из аргументов в метод DrawRectangle. В следующем примере рисуется прямоугольник с левым верхним углом (100, 50), шириной 80 и высотой 40.
myGraphics.DrawRectangle(&myPen, 100, 50, 80, 40);
DrawRectangle — это перегруженный метод класса Graphics , поэтому существует несколько способов предоставления ему аргументов. Например, можно создать объект Rect и передать ссылку на объект Rect в качестве аргумента в метод DrawRectangle.
Rect myRect(100, 50, 80, 40);
myGraphics.DrawRectangle(&myPen, myRect);
Объект Rect имеет методы для обработки и сбора сведений о прямоугольнике. Например, методы Inflate и Offset изменяют размер и положение прямоугольника. Метод Rect::IntersectsWith сообщает, пересекается ли прямоугольник с другим заданным прямоугольником, а метод Contains указывает, находится ли заданная точка внутри прямоугольника.