博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC文档(SDI)应用:画图程序(画圆、画线、鼠标事件)
阅读量:7026 次
发布时间:2019-06-28

本文共 1265 字,大约阅读时间需要 4 分钟。

要求

1、 在客户区输出一条顺时针45度的直线、一个正方形、一个大圆;

2、 在客户区输出一个图标;

3、 当按下鼠标左键时,将以鼠标坐标为圆心画直径为20个单位的小圆。

  1. 首先设置两个变量,用来保存颜色和线宽。这样就但是通过程序设置圆或者线条的颜色和宽度了。(加入在view类的构造函数中)

COLORREF color;int penwidth;

    2. 画45度直线的实现代码例如以下:

CClientDC dc(this);CPen pen(PS_SOLID,penwidth,color);dc.SelectObject(&pen);dc.MoveTo(0,0);dc.LineTo(400,400);

    3. 画矩形的代码实现例如以下:
CClientDC dc(this);CPen pen(PS_SOLID,penwidth,color);dc.SelectObject(&pen);dc.Rectangle(200,200,400,400);
    4. 画圆的实现代码例如以下:(凝视掉的部分为CPen填充矩形,未凝视的是用CBrush填充矩形)

CClientDC dc(this);//CPen pen(PS_SOLID,penwidth,color);CBrush brush=RGB(255,255,0);CBrush* pbr=dc.SelectObject(&brush);dc.SelectObject(&brush);dc.Ellipse(300,300,400,400);// TODO: Add your command handler code here//CDC* pdc=GetDC();//pdc->Ellipse(300,300,400,400);

     5. 在客户区输出一个图标的实现代码例如以下:(提前通过编译器将程序导入)

CDC* pdc=GetDC();BITMAP bitmap;CBitmap bm;bm.LoadBitmap(IDB_BITMAP1);bm.GetBitmap(&bitmap);CClientDC dc(this);dc.CreateCompatibleDC(pdc);dc.SelectObject(&bm);pdc->BitBlt(320,30,180,120,&dc,80,50,SRCCOPY);
      6. 当按下鼠标左键时,将以鼠标坐标为圆心画直径为20个单位的小圆,实现代码例如以下:(首先加入鼠标左键按下的响应事件,然后加入例如以下代码)

CClientDC dc(this);CPen pen(PS_SOLID,penwidth,color);dc.SelectObject(&pen);dc.Ellipse(point.x-10,point.y-10,point.x+10,point.y+10);
执行截图例如以下:

參考博客:

本程序的下载地址:  http://download.csdn.net/detail/rl529014/9498564

你可能感兴趣的文章
shell脚本编程 一
查看>>
storm典型场景
查看>>
PDP Document 代码注释规范
查看>>
Apache优化——日志管理
查看>>
formValidation 验证数字不能小于等于0
查看>>
PHP7源码编译安装
查看>>
android底层实现鼠标状态的图标
查看>>
Discuz的分页函数multi分析
查看>>
JAVA API 设计
查看>>
【Qt笔记】标准对话框--输入对话框
查看>>
Qt 实现 Logger 日志的显示
查看>>
NoSQL开篇——为什么要使用NoSQL
查看>>
logback配置详解
查看>>
spring security3.x学习(18)_salt以及Bcrypt加密
查看>>
#docker#基本操作2
查看>>
marsony布局出现的错误Assertion failure in (二)
查看>>
mysql join left join区别
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的求职之路
查看>>
dwr+springboot实现java消息推送浏览器【无dwr配置文件】
查看>>
分享一个检测某网页依赖第三方资源的 python 脚本
查看>>