mfc中使用不同的画笔来绘制图形
2014-12-06 19:35
183 查看
画笔是用来绘制点,线和图形的对象。MFC的CPen类封装了windowsGDI画笔,通过它,可以定义CDC类所绘制图形的边线风格,线宽和颜色。
首先给出实例的demo
![](https://img-blog.csdn.net/20141206193322171?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTYxOTQyMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
要实现这些功能,我们需要在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();
}
}
代码很简单,就只有选择画笔,以及图形的绘制,最后要注意的就是记得用完画笔后记得删除
首先给出实例的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();
}
}
代码很简单,就只有选择画笔,以及图形的绘制,最后要注意的就是记得用完画笔后记得删除
相关文章推荐
- 如何使用MATLAB绘制不同类型的二维图形
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- C#画笔Pen使用路径绘制图形的方法
- 使用原生JavaScript的Canvas实现拖拽式图形绘制,支持画笔、线条、箭头、三角形、矩形、平行四边形、梯形以及多边形和圆形,不依赖任何库和插件,有演示demo
- VS2010 MFC使用TeeChart绘图控件之二:绘制图形(折线图,柱状图)
- MFC基本图形的绘制(一)设备环境类CDC、画笔和画刷
- c#画笔Pen使用路径绘制图形
- 开始使用SmartDraw绘制开发中的各种图形
- 开始使用SmartDraw绘制开发中的各种图形
- 在Java中使用JGraph实现图形绘制
- 开始使用SmartDraw绘制开发中的各种图形
- 开始使用SmartDraw绘制开发中的各种图形
- 开始使用SmartDraw绘制开发中的各种图形
- 开始使用SmartDraw绘制开发中的各种图形
- mfc ,vc 使用过滤色绘制图片
- 源码推荐:一个使用C#绘制图形引擎的Framework
- 开始使用SmartDraw绘制开发中的各种图形
- 开始使用SmartDraw绘制开发中的各种图形
- MFC绘图--使用不同DC
- 使用JavaScript绘制图形