VC编程之利用Microsoft VC++6.0 的MFC的绘图工具实现简单图形的绘制
小标 2018-09-04 来源 : 阅读 3462 评论 0

摘要:本文主要向大家介绍了VC编程之利用Microsoft VC++6.0 的MFC的绘图工具实现简单图形的绘制,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

本文主要向大家介绍了VC编程之利用Microsoft VC++6.0 的MFC的绘图工具实现简单图形的绘制,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

      在Windows平台上,应用程序的图形设备接口(graphics device interface,GDI)被抽象为设备上下文(Device Context,DC)。
      在微软基类库MFC中,CDC类是定义设备上下文对象的基类,所有绘图函数都在CDC基类中定义。当需要输出文字或图形时,就需要调用CDC类的成员函数,这些成员函数具备输出文本、绘制图形的功能。
      本文讲解的例程全部在TestView.cpp文件的void CTestView::OnDraw(CDC* pDC)函数中实现。
1.在屏幕的P0(20,20)坐标位置处绘制一个蓝色像素点,然后读出该像素点的颜色,水平平移100个像素绘制P1点;画一个矩形。
   代码如下:


 1 void CMy00View::OnDraw(CDC* pDC)
 2 {
 3     CMy00Doc* pDoc = GetDocument();
 4     ASSERT_VALID(pDoc);
 5     // TODO: add draw code for native data here
 6    
 7     COLORREF clr;
 8     int x=20,y=20;
 9     pDC->SetPixelV(x,y,RGB(255,0,0));
10     clr=pDC->GetPixel(x,y);
11     pDC->SetPixelV(x+100,y,clr);//像素点
12     pDC->Rectangle(100,200,200,300);//矩形
13 }

 效果如下:


2.从起点P0(20,30)到终点P1(200,300)画一条1像素宽的蓝色直线
代码如下:


 1 void CMy00View::OnDraw(CDC* pDC)
 2 {
 3     CMy00Doc* pDoc = GetDocument();
 4     ASSERT_VALID(pDoc);
 5     // TODO: add draw code for native data here
 6     //从起点P0(20,30)到终点P1(200,300)画一条1像素宽的蓝色直线,
 7         CPen NewPen,*p01dPen;
 8     NewPen.CreatePen(PS_SOLID,1,RGB(0,0,255));
 9     p01dPen=pDC->SelectObject(&NewPen);
10     pDC->MoveTo(20,30);
11     pDC->LineTo(200,300);
12     pDC->SelectObject(p01dPen);
13     NewPen.DeleteObject();
14 }


效果如下:

 
3.绘制左上角点为P0(100,100),右下角点为P1(600,300)的矩形。矩形边界线为1像素宽的蓝线,矩形内部填充为绿色
  代码如下:


 1 void CMy00View::OnDraw(CDC* pDC)
 2 {
 3     CMy00Doc* pDoc = GetDocument();
 4     ASSERT_VALID(pDoc);
 5     // TODO: add draw code for native data here
 6         CPen NewPen,*p01dPen;
 7     NewPen.CreatePen(PS_SOLID,1,RGB(0,0,255));
 8     p01dPen=pDC->SelectObject(&NewPen);
 9     CBrush NewBrush,*p01dBrush;
10     NewBrush.CreateSolidBrush(RGB(0,255,0));
11     p01dBrush=pDC->SelectObject(&NewBrush);
12         pDC->Rectangle(100,100,600,300);
13     pDC->SelectObject(p01dBrush);
14     NewBrush.DeleteObject();
15 }

 效果如下:

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言VC/MFC频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 3
看完这篇文章有何感觉?已经有5人表态,40%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程