程序运行界面:
class
CShape:
public
CObject
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
protected:
COLORREF m_pColor; //线条颜色
int m_pWidth;//线条宽度
int m_pStyle;//线条样式
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
CShape()...{}
DECLARE_SERIAL(CShape)
public:
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
virtual void Drawing(CDC* pDC)...{}//画图操作
virtual void Serialize(CArchive& ar);//
virtual ~CShape();
}
;
其它图元都是从此基类继承得到的
CClientDC dc(
this
);
OnPrepareDC(
1.
![](https://p-blog.csdn.net/images/p_blog_csdn_net/snailbreak/clip_image002.jpg)
2.
![](https://p-blog.csdn.net/images/p_blog_csdn_net/snailbreak/clip_image0023.jpg)
设计概要:
1 引言
1.1编写目的
对C++学习收获的一次测试,以及对自己学习能力的一中考验。
1.2背景
说明:
a.软件名称:涂鸦(DooDle);
b.此画图软件由Bring.Zhang独立完成设计与实现。
1.3定义
1.1编写目的
对C++学习收获的一次测试,以及对自己学习能力的一中考验。
1.2背景
说明:
a.软件名称:涂鸦(DooDle);
b.此画图软件由Bring.Zhang独立完成设计与实现。
1.3定义
此画图软件定义了自己的文件存储格式*.dle,只能打开.dle格式的文件
1.4参考资料
1.4参考资料
a. 《Visual C++ 6.0编程实用技术与案例》陈元琰等编著
b.《深入浅出MFC》 简体中文版(侯俊杰);
c.<<VC++技术内幕>> 潘爱民。
c.<<VC++技术内幕>> 潘爱民。
2 总体设计
2.1需求规定
设计目标:设计一个简单的图形编辑器(类似于一个简单的windows画图程序),具有基本图形形状的绘制、涂色等功能,并能够保存和打开自定义格式图形文件。要求使用MFC编程。
2.1需求规定
设计目标:设计一个简单的图形编辑器(类似于一个简单的windows画图程序),具有基本图形形状的绘制、涂色等功能,并能够保存和打开自定义格式图形文件。要求使用MFC编程。
功能设计要求:
a. 图形编辑功能
(1) 能够在画图区域中实现对矩形、圆、椭圆、直线等各种基本图元的绘制。
(2) 能够对所绘制的各种图元内部任意选择颜色进行涂色
(3) 能够对各种图形编辑操作实现undo(撤消)功能
b. 文件保存与打开功能
(1) 能够将在图形编辑区中所输入的各种图形对象存储到文件中。
(2) 能够打开所保存的自定义格式的图形文件,并在文件打开时将文件中存储的所有图形对象显示出来。
c. 测试程序
2 . 2 运行环境
此画图软件是在 visual stdio 2005 环境下编写的,并成功通过编译。
2 . 3 基本设计流程
a .运用 MFC AppWizard 建立画图程序的基本框架 (SDI);
2 . 2 运行环境
此画图软件是在 visual stdio 2005 环境下编写的,并成功通过编译。
2 . 3 基本设计流程
a .运用 MFC AppWizard 建立画图程序的基本框架 (SDI);
b
.设计所用图元类(具体设计见总体框架);
c
.实现动态画图操作;
d.实现画图文件的文件操作。
2
.
2
运行环境
此画图软件是在 visual stdio 2005 环境下编写的,并成功通过编译。
2 . 3 基本设计流程
a .运用 MFC AppWizard 建立画图程序的基本框架 (SDI);
此画图软件是在 visual stdio 2005 环境下编写的,并成功通过编译。
2 . 3 基本设计流程
a .运用 MFC AppWizard 建立画图程序的基本框架 (SDI);
b
.设计所用图元类(具体设计见总体框架);
c
.实现动态画图操作;
d
.实现画图文件的文件操作。
2 . 4 系统总框图
2 . 5模块的设计分析
2 . 4 系统总框图
2 . 5模块的设计分析
a.图元特性设计:
图元基类:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
b
.动态画图:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)