欢迎来到天天文库
浏览记录
ID:47226597
大小:572.50 KB
页数:32页
时间:2019-08-28
《MJ88_简单画图程序课设》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、目录1・基本功能描述-1-2•设计思路-1-3•软件设计-4-3.1设计步骤-4-3.2界面设计-9-3.3关键功能的实现-9-4.结论与心得体会-10-5•参考文献-11-6•思考题-12-7.附录-13-7.1调试报告-13-7.2测试结果-13-7.3关键源代码-15-简单画图程序1.基本功能描述1)设计一个程序可完成绘制直线,矩形和椭圆的功能。要求:线条样式(实线、虚线、点线等)和宽度可以改变。图形的线条颜色和内部填充颜色可以用颜色对话框进行改变。各个选择对彖都具有默认值。2)通过菜单栏和工具栏的使用,使得程序的操作表的人性化,当鼠标移动到菜单栏上而时,可以动态显示按钮作用
2、,菜单栏和工具栏有相应的快捷方式来操作,并且冇相关捉示,和系统给定的菜单栏工具栏相似。3)对于一般的绘图程序,最好能够冇橡皮擦和清屏的功能,在这个程序屮可以给与添加,即能够对图形用橡皮擦进行修改,也可全部删除以前的图形,耍和平时的使用习惯相符合。4)这个程序的闹图是使用鼠标操作,鼠标的左键按下同时拖动进行绘图,并冃耍求能及时显示岀来,如在电脑桌而上按下鼠标右键拖动时的情形,橡皮筋技术就要得以使用,这个技术第一次接触,要好好掌握。5)用户会从实用性出发,要求界而干净,简洁,实用,能一目了然。不能太繁琐,太花哨。用户能通过界而快速了解软件的功能,对于快捷键等隐含的内容可以给与捉示,人机
3、交互性强。2.设计思路1)首先,对所要用到的各个变量进行初始化,即对线宽、线的样式、线的颜色、填充颜色,图形选择进行初始化。2)新建菜单资源和工具栏资源,对它们进行编辑,尽量可表示出它们的功能,利用类向导建立响应函数。3)然后,通过初始化的对象对应笔颜色、样式和宽度进行设置并返冋,再对画图的图形进行编号,通过form的赋值进行选择,从而确定具体的画图图形函数。4)由c的设置创建画笔、画刷,根据颜色对话框对颜色进行选择,颜色对话框是系统给定的。5)当鼠标左键按下、鼠标左键按下移动和鼠标左键标弹起各个状态来得到鼠标的坐标,将坐标返回到绘图函数屮,根据form的值用switch()函数进
4、行选择,然后进行绘图显示。程序的操作流程图如图1所示。V图1程序操作流程图1.软件设计3.1设计步骤1)创建新工程打开VC++软件,按文件->新建->工程操作,选择MFCAppWizard(.exe)工程后缀。在工程名一栏中填入lisansi工程名,存储位置自选。点击确定按钮即可。创建新工程如图2所刀图2创建新工程2)创建一个新的单文档该程序是建立在单文档基础上,因此耍先建立单文档,在如图3所示的对话框中选择单文档,其它均为默认设置,点击确认即可建立单文档程序。注意,保存吋,要点击确定按钮。如图3所示。图3创建单文档应用程序3)建立新的菜单栏选择ResourseView,单击Men
5、u栏,双击IDR_MAINFRAME,贝U在工作区显示系统给定的的菜单项。编辑这菜单并给与各口的ID号和标明项。对于有弹出功能的菜单项,在属性中选择弹出多选框即可。在属性中,在提示框内输入操作提示,例如“直线直线”前一个“直线”是在提示栏中显示的,后一个“直线”是当鼠标移动到该按钮上时,给与功能提示作用。设置菜单栏项目的属性对话框如图4所示.对于快捷键的提示符,例如“直线(&L)XtCtrl+L",其中&L使得L下有下划线,址表示空格功能,Ctrl+L是提示符,按照这个操作,使得新建的菜单项和系统口定义的菜单项在格式上和同。菜单项目厘性IX]扩展样式ID:__▼标明(£1:直线
6、(&L)tCtrl+L厂分隔符回弹出回厂非活动中断O:无▼厂已复选凶已变灰⑹厂帮助(U提示(MJ:直线如直线图4设置菜单栏项H的屈性对话框按照建立直线菜单项的方法,建立其它菜单项,要尽量与系统给定的菜单项样式一致。立好菜单栏后得到菜单栏样式如图5所示。文件(E)編辑(或绘图(吵查看(刃帮助(也]直线(DCtrl+L矩形(B)Ctrl+R楠圆(或Ctrl+E线宽(妙►线色©・・・・线划见线-线线线划点可框-实虚点点双不内-m…线的样式图5菜单栏样式4)建立类向导由丁•类时间在View中,因此类名Classname应选择CLisansiView,这一点耍特别注意,系统默认的是CMai
7、nFrame,必须耍调整。然后选择耍添加的对象的1D号,添加对应的命令函数。添加完成后不耍像对属性设置那样•直接关闭,应该点击确定按钮,否则设置会没有保存,这是刚接触MFC吋容易犯的错误。COMMAND是添加添加命令的,而UPDATE_COMMAND_UI是用来标识选择的,可以提高人机交互性。耍添加类向导的函数有:ID.CLEAR//加清屏函数ID.ERASER〃加橡皮擦函数ID.LINE//加画直线函数ID_ELLIPSE〃加画椭圆函数ID.RECTANGLE//加
此文档下载收益归作者所有