您的位置:首页 > 编程语言 > C语言/C++

mfc中使用不同的画笔来绘制图形

2014-12-06 19:35 183 查看
画笔是用来绘制点,线和图形的对象。MFC的CPen类封装了windowsGDI画笔,通过它,可以定义CDC类所绘制图形的边线风格,线宽和颜色。

首先给出实例的demo



要实现这些功能,我们需要在Ondraw中定义画笔,并通过SelectObject来选择画笔

具体代码如下:

void CMFCApplication15View::OnDraw(CDC* pDC)

{
CMFCApplication15Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;

// TODO:  在此处为本机数据添加绘制代码

CPen pen[5];
pen[0].CreatePen(PS_SOLID, 3, RGB(255, 0, 0)); //创建实现画笔
pen[1].CreatePen(PS_DASH, 1, RGB(0, 255, 0));//创建虚线画笔
pen[2].CreatePen(PS_DOT, 1, RGB(0, 0, 255));//创建点画笔
pen[3].CreatePen(PS_DASHDOT, 1, RGB(0, 255, 255));//创建点画线画笔
pen[4].CreatePen(PS_DASHDOTDOT, 1, RGB(255, 0, 255));//创建双点划线画笔

CPen *pOldpen;

pOldpen = pDC->SelectObject(&pen[0]);
pDC->Rectangle(10, 10, 110, 110);
pDC->TextOutW(15, 15, _T("绘制矩形"));

pDC->SelectObject(&pen[1]);
CPoint pts[] = { CPoint(190, 20), CPoint(200, 60), CPoint(270, 40), CPoint(210, 80),
CPoint(250, 100), CPoint(300, 30), CPoint(310, 80) };

pDC->Polyline(pts, 7);
pDC->TextOutW(180, 115, _T("绘制多段图形"));

pDC->SelectObject(&pen[2]);
pDC->Ellipse(10, 140, 160, 240);

pDC->SelectObject(&pen[3]);
pDC->Pie(20, 150, 150, 230, 160, 160, 10, 160);

pDC->SelectObject(&pen[4]);
pDC->Arc(20, 150, 150, 230, 10, 220, 160, 220);

pDC->TextOutW(10 , 245, _T("绘制椭圆、圆弧和饼图"));

pDC->SetTextColor(RGB(0, 0, 255));

pDC->TextOutW(220, 200, _T("使用不同的画笔绘制各种图形"));

pDC->SelectObject(pOldpen);

for (int i = 0; i < 5; i++){
pen[i].DeleteObject();
}

}

代码很简单,就只有选择画笔,以及图形的绘制,最后要注意的就是记得用完画笔后记得删除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MFC c++
相关文章推荐