MFC文档(SDI)应用:绘图程序(画圆、画线、鼠标事件)
2016-04-21 20:48
525 查看
要求
1、 在客户区输出一条顺时针45度的直线、一个正方形、一个大圆;
2、 在客户区输出一个图标;
3、 当按下鼠标左键时,将以鼠标坐标为圆心画直径为20个单位的小圆;
首先设置两个变量,用来保存颜色和线宽,这样就可是通过程序设置圆或者线条的颜色和宽度了。(添加在view类的构造函数中)
2. 画45度直线的实现代码如下:
3. 画矩形的代码实现如下:
4. 画圆的实现代码如下:(注释掉的部分为CPen填充矩形,未注释的是用CBrush填充矩形)
5. 在客户区输出一个图标的实现代码如下:(提前通过编译器将程序导入)
6. 当按下鼠标左键时,将以鼠标坐标为圆心画直径为20个单位的小圆,实现代码如下:(首先添加鼠标左键按下的响应事件,然后加入如下代码)
运行截图如下:
![](https://img-blog.csdn.net/20160421203839898?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
参考博客:用MFC “菜单响应事件” 实现绘图
本程序的下载地址:点击下载 http://download.csdn.net/detail/rl529014/9498564
1、 在客户区输出一条顺时针45度的直线、一个正方形、一个大圆;
2、 在客户区输出一个图标;
3、 当按下鼠标左键时,将以鼠标坐标为圆心画直径为20个单位的小圆;
首先设置两个变量,用来保存颜色和线宽,这样就可是通过程序设置圆或者线条的颜色和宽度了。(添加在view类的构造函数中)
COLORREF color; int penwidth;</span>
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);
运行截图如下:
参考博客:用MFC “菜单响应事件” 实现绘图
本程序的下载地址:点击下载 http://download.csdn.net/detail/rl529014/9498564
相关文章推荐
- HDU 4503 湫湫系列故事——植树节(组合概率)
- 哈佛大学研究新人工智能系统 速度媲美人类大脑
- 大话数据结构读书笔记系列(六)树<上篇>
- hdu 5668 Circle 中国剩余定理
- 【转】30+有用的CSS代码片段
- android圆形ImageView
- The user specified as a definer ('test'@'%') does not exist
- C#—异常类
- YTU 3013: 皇后问题(递归)
- Unity学习笔记二 - Survival Shooter Tutorial
- 如何在eclipse中设置javadoc
- SPI、I2C、UART的区别和联系
- 访问jar包外部properties文件
- //这里有“”,格式标准,否则有时会出错;
- 枚举类
- 对百度输入法的使用体验
- ssh 遍历IPS 进行连接
- java单例模式详尽总结
- dubbo原理解析
- ubuntu安装后设置那点事