欢迎来到天天文库
浏览记录
ID:18421096
大小:131.78 KB
页数:14页
时间:2018-09-17
《计算机程序设计实践 mfc画图软件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机程序设计实践课程设计报告班级_计算机科学与技术1303班学号130405320姓名__________韦昌杆___________指导教师___________杨威_____________2015年1月8日交互式绘图程序1.引言计算机的发展也是计算机语言的发展得到了很大的提高,人们的生活中离不开图像,除了我们可以用铅笔在纸上画图外,我们也可以在电脑上绘制我们的想象,本实验就是基于VC++的一个小型的绘图软件。目的:1.掌握用VC++6.0开发环境开发软件的方法;2.熟悉获得帮助的方法;3.掌握SDI应用程序结构,熟悉
2、基于对话框的应用程序编程方法;4.掌握用资源编辑器进行图标,菜单,工具栏,对话框等资源的编辑;5.掌握对话框,常用控件的使用方法;6.熟悉文档/视图结构,掌握文档和视图的相互控制技巧;2.需求分析2.1系统功能分析自定义一个工具栏,工具栏提供功能按钮,实现简单基本图形的绘制,如直线、矩形、圆形、椭圆形、扇形,多边形,填充色等。实现对图形的交互编辑,如修改颜色和线型等;2.2系统设计目标本系统实现了绘图程序的基本功能,新建的工具栏中包含了绘图的基本按钮,例如点,直线,矩形,圆,扇形,五角星,多边形,填充色等在菜单栏中加入了对图
3、形的基本编辑,比如对图形边框的颜色,线型,线宽等编辑在工具中加入了连续画笔这一功能,使大家可以在电脑上和在纸上一样自由的画图。3.系统设计3.1系统功能设计CGraphicsCCGraphicsViewCSettingDlg工具栏和菜单栏的命令响应函数编辑类的消息响应函数鼠标的消息响应函数3.2系统工作流程CCGraphicsDocCCGraphicsViewCAboutDlgCCGraphicsApp3.3类设计与类结构CGraphicsCAboutDlgCCGraphicsAppCCGraphicsDocCCGraphi
4、csViewCMainFrameCSettingDlgGlobals编辑类的消息响应函数鼠标的消息响应函数工具栏和菜单栏的命令响应函数3.4开发与运行环境MicrosoftVisualc++6.04设计与实现设计的界面为下图所示1.添加消息响应函数OnSetting(),并添加头文件"SettingDlg.h",在view类中添加成员变量m_nLineWidth,初始化。给单选按钮增加成员变量m_nLineStyle,初始化。2.当用户点击OK时,将其保存:CSettingDlgdlg;dlg.m_nLineWidth=m_
5、nLineWidth;/*保存用户设定的值*/dlg.m_nLineStyle=m_nLineStyle;if(IDOK==dlg.DoModal()){m_nLineWidth=dlg.m_nLineWidth;/*点击确定时保存下来*/m_nLineStyle=dlg.m_nLineStyle;}3.对颜色这一项增加命令响应,创建dlg对象,并在view类中增加成员变量m_clr,初始化:CColorDialogdlg;dlg.m_cc.Flags
6、=CC_RGBINIT;/*标记*/dlg.m_cc.rgbResult
7、=m_clr;/*保存用户设定的值*/if(IDOK==dlg.DoModal()){m_clr=dlg.m_cc.rgbResult;/*点击确定时保存下来*/}4.添加绘图菜单,添加菜单项,并添加消息响应函数,如下图所示:5.在之前的OnLButtonUp函数中加入画笔函数,并将之前设定的m_nLineStyle,m_nLineWidth,m_clr作为画笔函数的形参添加到其中,并作为nDrawType=9对其进行响应:CClientDCdc(this);CPenpen(m_nLineStyle,m_nLineWidth
8、,m_clr);/*绘制画笔*/dc.SelectObject(&pen);6.捕获鼠标移动命令并将画笔函数写入其中:dc.MoveTo(m_ptOrigin);dc.LineTo(point);m_ptOrigin=point;7.对填充色增加命令响应,在响应函数中将nDrawType=10写在里面,在OnLButtonUp中编写函数:CBrushbrFill;brFill.CreateSolidBrush(m_clr);pBrush=dc.SelectObject(&brFill);dc.ExtFloodFill(poi
9、nt.x,point.y,dc.GetPixel(point),FLOODFILLSURFACE);dc.SelectObject(pBrush);8.对橡皮增加命令响应,在响应函数中将nDrawType=11,写在里面,,在OnMouseMove中编写函数:CClientDCdc(thi
此文档下载收益归作者所有