MFC—课程设计
四、运行效果
1.编译运行,按下Ctrl+鼠标左键
图6.按下Ctrl+鼠标键结果示意图
2.选择文本,弹出角度框
图7.角度框的显示结果示意图
21
MFC—课程设计
3.创建正方形、圆形、文本
图8.创建图形结果示意图1
4.创建三角形和椭圆
图9.创建图形结果示意图
22
MFC—课程设计
5.单击鼠标左键修改正方形和文本属性
图10.修改图形属性结果示意图
6.右键双击删除三角形
图11.弹出删除警告窗口结果示意图
23
MFC—课程设计
图12.删除三角形结果示意图
7.保存退出
五、设计小结
1. 通过这次实验,进一步加深了我对类的运用,使我大概了解了构造函数和析构函数在程序中的应用,这次查找错处也使我更小心去注意程序的细节问题。 2. 即使在MFC中,MFC虽然是VC++中的一个特色,对我来说还是有很多的地方并不了解。我对VC++缺乏整体上的认识,我只是在程式化的执行它。比如说,在系统已给的类的搭建,类中成员函数的插入,已有类的功能等等诸多,我的了解尚为浅薄。
3. 通过这次实验至少得到了认识和了解windows绘图的功能,比如: CDC类和CObject类以及其派生类的应用,还在实验中通过调用OnDraw函数绘制不同尺寸、颜色、风格的几个图形和图位。但是要想熟练掌握还需要大量的实践。 4. 通过这次实验我掌握了动态数组的应用,动态数组相对于静态数组来说可以更加有效利用存储空间。而这也是我以前没有掌握的知识。
5. 面向对象的操作要求思路清晰,过程严谨,就好似一个连环扣,缺一环而不可。这次实验中我深刻地了解到了编写程序的思路与实验过程,我很珍惜这次经验。
24
MFC—课程设计
6. 最后,感谢那些给予我帮助的老师和同学们!大家辛苦了!
六、主要代码清单
1.Shape.h
// Shape.h: interface for the CShape class. //
//////////////////////////////////////////////////////////////////////
#include \#include \#include \
#if !defined(AFX_SHAPE_H__9F3D8253_0729_4802_9938_EDAA421048A0__INCLUDED_)
#define AFX_SHAPE_H__9F3D8253_0729_4802_9938_EDAA421048A0__INCLUDED_
#if _MSC_VER > 1000 #pragma once
#endif // _MSC_VER > 1000
class CShape : public CObject { public:
CShape();
virtual ~CShape();
virtual void Draw(CDC*pDC)=0;//绘制图元
virtual bool IsMatched(CPoint pnt)=0;//点是否落在图形内部 virtual void Serialize(CArchive& ar) = 0; int OrgX;
25