欢迎来到天天文库
浏览记录
ID:47547053
大小:756.72 KB
页数:52页
时间:2020-01-14
《MFC课程设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MFC—课程设计《面向对象可视化对象编程》课程设计总结报告班级:学号:姓名:2016.12.12-2016.12.2352MFC—课程设计目录一、课程设计的目的3二、课程设计的内容与设计思路31.课设内容32.设计思路4三、程序实现过程与细节51.涉及的主要函数列表52.工程的新建73.建立图元属性对话框74.控件的关联95.枚举型106.定义动态数组117.建立Shape类及其子类128.OnDraw()159.鼠标左键消息响应函数1610.鼠标右键双击消息响应函数1711.颜色按钮1812.获取鼠标点击处的逻辑坐标1913.
2、对话框中控件的显示与隐藏1914.文档的存取20四、运行效果211.编译运行,按下Ctrl+鼠标左键212.选择文本,弹出角度框213.创建正方形、圆形、文本224.创建三角形和椭圆225.单击鼠标左键修改正方形和文本属性236.右键双击删除三角形237.保存退出24五、设计小结24六、主要代码清单251.Shape.h252.Shape.cpp293.LwhView.cpp4452MFC—课程设计一、课程设计的目的1.参加本课程设计的同学已经学习了《C语言程序设计》和《面向对象可视化编程》两门课程,现在需要通过一个相对实际性的
3、开发过程来巩固与鉴定一下学习成效,可以查看离实际需要还有哪些部分没有完全掌握,需要加强检测;2.本课程设计可以提供一个稍微具有规模的程序开发的例子,让同学们可以体会到程序的构思、编码以及调试的完整过程,最后并总结课程设计的过程;3.通过本次课程设计,可以对自身做一个评估,看看在哪方面不足从而加强学习;二、课程设计的内容与设计思路1.课设内容要求:采用单文档方式,文档中存储图形画面的各个图元数据,视图负责图形的绘制。文档支持图形的序列化(连载),提供新建、打开、保存等操作。视图除了绘制图形,还提供图形交互,能够按住Ctrl键再鼠标
4、左键单击来创建图元,鼠标左键双击编辑修改图元属性,鼠标右键双击删除图元。图元创建与修改时的参数由参数对话框来编辑。创建时以鼠标左击时光标的所在位置作为基点来创建图元。52MFC—课程设计2.设计思路我们的最终目的是显示一个单文档窗口,且可利用从对话框中输入的数据绘制图形。所以,首先建立一个单文档程序,再添加对话框,用来创建与修改图形参数,之后给对话框中的各复选框,编辑框,按钮添加消息响应函数,进行控件关联,并利用枚举型使参数传递。定义一个动态数组以存储从对话框中获取的数据,之后添加Shape类,用来绘图,由Shape类定义一个指
5、针指向动态数组,便可从中读出之前存储的数据进行绘图,从而达到目的,思路图参考如图1,2:图1.Shape的六个派生类图2.工程思路图解52MFC—课程设计三、程序实现过程与细节1.涉及的主要函数列表附表1函数定义与功能一览表序号函数名函数定义定义所在文件名函数功能1OnInitDialog()BOOLCType::OnInitDialog()Type.cpp对对话框进行初始化处理2OnOk()voidCType::OnOK()Type.cpp按确定按钮时调用3OnFillColorButton()voidCType::OnFil
6、lColorButton()Type.cpp按下按钮,弹出颜色选择对话框4OnLinelColorButton()voidCType::OnLineColorButton()Type.cpp按下按钮,弹出颜色选择对话框5OnDraw()voidCLwhView::OnDraw(CDC*pDC)LwhView.cpp应用程序窗口的客户区进行绘图6OnLButtonDown()voidCLwhView::OnLButtonDown(UINTnFlags,CPointpoint)LwhView.cpp按下鼠标左键,执行该函数7OnRB
7、uttonDblClk()voidCLwhView::OnRButtonDblClk(UINTnFlags,CPointpoint)LwhView.cpp双击鼠标右键时,执行该函数8OnSelchangeComBoxTuYuanType()voidCType::OnSelchangeComBoxTuYuanType()LwhView.cpp选择图元属性组合框时,显示或隐藏某个编辑框9Serialize()voidCSquare::Serialize(CArchive&ar)voidCRectangle::Serialize(CA
8、rchive&ar)Shape.cpp将表单内容序列化52MFC—课程设计voidCTriangle::Serialize(CArchive&ar)voidCCircle::Serialize(CArchive&ar)voidCEllipse::Serializ
此文档下载收益归作者所有