简单画图程序课程设计报告全解
绘图程序 课程设计报告

绘图工具用户签名: 刘建开发成员:刘建开发时间:2010/12/17 学号:**********目录0引言 (3)1 工作计划 (3)1.1主要工作阶段划分 (3)1.2工作任务分工 (3)2需求分析 (4)2.1概述 (4)2.2用户分析 (4)2.3 约束条件 (4)2.4功能需求 (4)2.5用户界面需求 (5)3设计与实现 (5)3.1概述 (5)3.2详细设计 (5)3.1.1类的抽象及设计 (5)3.1.2表结构设计(涉及到数据库的题目需要完成该部分内容) (6)3.3 主要程序文件 (6)3.4开发环境以部署环境要求 (7)3.5 主要源码 (7)4.1概述 (7)4.2 测试环境 (10)4.3测试计划 (10)4.4测试项目及结果 (11)5、工作总结 (14)5.1工作成果 (14)5.2过程分析 (14)5.3经验教训及其分析 (15)0引言在日常生活中人们会经常绘图,而绘图工具提供给了人们一种便捷有效的绘图途径。
它不仅可以实现简单的绘图,如绘制直线、圆形、举行等,而且还可以对这些图形填充颜色。
并且可以根据个人爱好和实际需求自己设置画笔颜色以及画笔宽度。
该绘图工具界面简单清晰,使用简单方面,能满足很大一部分人的需求。
1 工作计划1.1主要工作阶段划分1.2工作任务分工2需求分析2.1概述本软件主要用于计算机windows 2000/XP以上版本的用户的使用,这次课程设计一般是实现绘图的功能。
程序除了能实现:绘制直线、圆形、矩形等图形外,还能实现对圆形、矩形等图形的填充等功能;程序还能实现清除界面所有图形、清除最近画的图等功能。
2.2用户分析普通用户看待一个软件的好坏主要是程序的实用性,界面的简洁美观性,程序所占资源的大小,以及程序运行期间的人性化的设置,所以要想让用户满意就要做到以上几点。
其中,这几点最重要的就是程序的实用性。
绘图工具,对于生活中的普通人来说,只要能实现简单的绘图,填充功能就行了。
c画图程序课程设计

c 画图程序课程设计一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和操作,学会使用画图程序进行简单的图形绘制。
通过本节课的学习,学生能够理解C语言的基本概念,熟练使用画图程序进行图形设计,培养编程思维和动手能力。
具体来说,知识目标包括:1.了解C语言的基本语法和数据类型。
2.掌握画图程序的基本功能和操作。
技能目标包括:1.能够编写简单的C语言程序。
2.能够使用画图程序进行基本的图形绘制。
情感态度价值观目标包括:1.培养学生的编程兴趣,提高学习的积极性。
2.培养学生团队合作和解决问题的能力。
二、教学内容本节课的教学内容主要包括C语言的基本语法和画图程序的使用。
具体安排如下:1.C语言基本语法:数据类型、变量、运算符、控制语句等。
2.画图程序的使用:图形绘制、颜色设置、图形属性等。
教学过程中,将结合具体的案例和练习题,让学生在实际操作中掌握C语言的基本语法和画图程序的使用。
三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用多种教学方法相结合的方式。
包括:1.讲授法:讲解C语言的基本语法和画图程序的使用方法。
2.案例分析法:分析具体的编程案例,让学生在实际操作中掌握知识。
3.实验法:让学生动手编写C语言程序,使用画图程序进行图形绘制。
通过多种教学方法的运用,激发学生的学习兴趣,提高学生的编程能力和动手能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:C语言程序设计基础。
2.参考书:C语言编程实例解析。
3.多媒体资料:C语言语法讲解视频、画图程序操作演示视频。
4.实验设备:计算机、画图程序软件。
通过以上教学资源的运用,帮助学生更好地理解和掌握C语言的基本语法和画图程序的使用,提高学生的学习效果。
五、教学评估本节课的教学评估将采取多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估主要包括以下几个方面:1.平时表现:通过课堂参与、提问、回答问题等环节,评估学生的学习态度和积极性。
简易画图板设计报告分析

设计报告:Graphic简易画图板-----韩伟谢程焜肖越周峰电科二班1设计目的设计一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。
此程序将实现简单的绘图功能,包括点、直线、矩形、椭圆、扇形和连续线的绘制。
并且能实现绘图的控制,包括线宽、线型和颜色的设置,图形的保存和打开以及笔刷的使用。
2 总体设计设计图如图6图63详细设计首先,新建一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。
为此程序添加一个子菜单,菜单名称为“绘图”,并为其添加六个菜单项,分别用来控制不同图形的绘制。
当用户选择其中的一个菜单项后,程序将按照当前的选择进行相应图形的绘制。
添加的六个菜单项的ID及名称如表1所示。
然后分别为这六个菜单项添加命令响应,本程序让视类(CGraphicView)对这些菜单命令进行响应,这六个响应函数的名称分别如表1所示。
在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。
因此在CGraphicView类中添加一个私有变量m_nDrawType;用来保存用户的选择,该变量的定义如下所述:private: UINT m_nDrawType;接着,在视类的构造函数中将此变量初始化为0,程序代码如下:CGraphicView::CGraphicView(){// TODO: add construction code herem_nDrawType=0;}利用switch/case语句,来分别完成相应图形的绘制。
当用户选择【绘图】菜单下的不同子菜单项时,将变量m_nDrawType设置为不同的值。
程序代码如下:void CGraphicView::OnDot(){// TODO: Add your command handler code herem_nDrawType=1;}void CGraphicView::OnLine(){// TODO: Add your command handler code herem_nDrawType=2;}void CGraphicView::OnRectangle(){// TODO: Add your command handler code herem_nDrawType=3;}void CGraphicView::OnEllipse(){// TODO: Add your command handler code herem_nDrawType=4;}void CGraphicView::OnShanxing(){// TODO: Add your command handler code herem_nDrawType=5;}void CGraphicView::OnLianxuxian(){// TODO: Add your command handler code herem_nDrawType=6;}3.1点、直线、矩形、椭圆的绘制(周峰谢程焜)对于直线、矩形和椭圆,在绘制时都可有两点来确定其图形。
C++简单化图程序课程设计解析

目录1.基本功能描述 (1)2.设计思路 (1)2.1 设计思想 (1)2.2 设计流程图 (2)3.软件设计 (4)3.1 设计步骤 (4)3.2 界面设计 (11)3.3 关键功能的实现 (12)4. 结论与心得体会 (13)5. 思考题 (14)6.附录 (16)6.1调试报告 (16)6.2测试结果 (17)6.3关键源代码 (19)简单画图程序1.基本功能描述1)制作与用户交互性较好的应用程序界面,实现直线、椭圆、矩形的绘制,完成图形填充、线宽、线色的控制。
2)鼠标的左键按下同时拖动进行绘图,实时显示绘制的图形。
3)有橡皮擦和清屏的功能。
4)界面干净,简洁,实用,一目了然。
用户能通过界面快速了解软件的功能,人机交互性强。
2.设计思路2.1 设计思想1)编辑菜单项,将需要实现的功能编辑到绘图项下面,并对每一模块用分隔线隔开,对应的操作有:直线、矩形、圆;填充;线宽、线色、填充色;橡皮擦、清屏。
2)实现画图的具体操作,对直线、矩形、圆等相关按键关联变量,例如:直线关联变量为m_ZhiXian。
然后利用类向导建立消息响应函数,在消息响应函数中将对应的BOOL值赋值为TRUE,同时将其他变量的BOOL值赋值为FALSE。
实现只能对一种画图进行选择。
3)编写具体画图函数,初始化画笔画刷,根据其他按键的选择来画图,线宽可通过对话框直接输入值也可通过菜单中弹出的选项选择,线色及填充色通过系统已经拥有的颜色对话框选择。
4)通过鼠标左键按下,鼠标移动,鼠标左键弹起来获取坐标,通过坐标点以及相关图形函数画图。
2.2 设计流程图图1程序操作流程图3.软件设计3.1 设计步骤1)创建新工程打开VC++软件,按文件->新建->工程操作,选择MFC AppWizard(.exe)工程后缀。
在工程名一栏中填入工程名,创建新工程如图2所示。
图2创建新工程2)创建单文档应用程序建好新工程后再如下图显示的界面中选择单文档,单击完成表示其他默认选择。
画图程序设计报告(MFC)

Windows程序设计课程设计报告班级:计本08-1班姓名:X X学号:XXXXXXXXX指导老师:2010-11-29目录1 引言 (3)1.1 课题背景 (3)1.2 课程设计目的 (3)2 功能说明 (3)3 系统的实现 (4)3.1 视图设计 (4)3.2 编辑资源 (4)3.3 编程思路及各个函数的实现 (5)4程序功能的测试 (7)4.1测试的研究与选择 (7)4.2 测试环境 (7)5.3 实例测试结果 (7)5学习的总结 (9)6参考文献 (10)摘要:本课程设计实现的是画椭圆、矩形、直线和随手画功能等。
这个画图小程序实现了简单的画图功能,具有简洁大方的图文外观。
它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和简易的菜单进行操作。
即时准确地获得需要的画图的工具,适合休闲娱乐和简单的画画,对人们的生活有一定的帮助。
在课程设计中,系统开发平台为WindowsXP,程序设计设计语言采用Visual C++,在程序设计中,采用了结构化与面向对象两种解决问题的方法。
关键词:程序设计;画图;MFC;画图函数Ellipse()Restangle()1 引言1.1 课题背景本课程设计主要在生活中的娱乐,可以在本程序上进行简单的绘图娱乐。
画图是日常生活中有效的工具,能实现简单的画图。
本程序是在VC6.0中使用AppWizard创建基于对话框的应用程序。
1.2 课程设计目的画图的实现,通过C++语句实现。
在视图中实现画线功能,更好的了解MFC、C++等面向对象语言的设计和实现,运用自己所学的一些知识来实现其运用到现实的实践中,从而做到学而有用。
2 功能说明本程序可以实现的功能如下:1.运行程序后单击“编辑”菜单,选择“画矩形”后,用鼠标就可以在视图中画出一个矩形。
2.选择“画椭圆”,用鼠标就可以在视图中画出一个椭圆。
3.选择“画直线”,用鼠标就可以在视图中画出一条直线。
4.选择“随手画”,用鼠标就可以在试图中随手画画。
WHUT简单画图程序课程设计报告

目录1 基本功能描述 (1)2 设计思路 (1)3 软件设计 (3)3.1 设计步骤 (3)3.2 界面设计 (5)3.3 关键功能实现 (6)4 结论与心得体会 (7)5 参考文献 (7)6 思考题 (7)7 附录 (8)7.1 调试报告 (8)7.2 测试结果 (10)7.3 关键源代码 (11)简单画图程序1 基本功能描述1) 在菜单项中添加了两个菜单项——绘图和配色,在绘图菜单项下又有绘制直线,矩形,椭圆和铅笔的子菜单,还有橡皮擦,设置线宽和光标选择的功能;在配色菜单项下又有线色选择,填充色选择和填充功能。
2) 绘图前先选择绘图所用笔的颜色,所用填充图形的颜色,再点击线宽子菜单在弹出的对话框中输入线宽值然后选择要绘制的图形,若不设定则按默认值作图。
3) 以上准备工作做好后左击工作窗口则选定绘图的初始位置,拖动鼠标直到绘图完成后释放鼠标选定了所绘图形的终点,其中铅笔功能是一个涂鸦功能,可以再界面上绘出任何画面,橡皮擦功能擦出作图过程中的一些错误,可以通过改变线宽来改变橡皮擦的单位擦除块的大小从而提高擦除效率。
2 设计思路1) 设计之初需完成程序的基本功能,首先写出绘制直线,椭圆,矩形的函数,在类向导中定义鼠标的按下,移动,弹起的函数以完成上述图形的绘制,其次,要实现线色和填充色的设置;2) 在第一步的基础上在鼠标的按下函数中添加SetCapture()函数以获取鼠标的当前位置,在视图类的头文件中先得定义鼠标的初始位置和最终位置两个变量,然后用橡皮线作出实现图形的动态过程;3) 最终鼠标弹起时需调用ReleaseCapture()函数以确定终点坐标;4) 添加工具条对应直线,矩形,椭圆,铅笔和橡皮擦等功能;图1 程序流程图图2 子程序流程图3 软件设计3.1 设计步骤1)创建MFC类向导的单文档应用程序图3 创建以liuwenrui为工程名的工程图4 创建单文档2)设置菜单项根据需要在菜单项上实现的功能添加相应的菜单,若一个菜单下的子菜单太多可设置多个菜单,再分别在菜单下加入子菜单,如下图5,图6所示,我添加了两个菜单项,在每个分别设置了相应的子菜单。
c画图程序课程设计

c 画图程序课程设计一、课程目标知识目标:1. 学生能理解并掌握c语言中画图程序的基本概念和原理;2. 学生能够运用c语言的基本语法,编写简单的画图程序;3. 学生能够了解并使用c语言中的图形库,实现基本的图形绘制。
技能目标:1. 学生能够独立完成画图程序的编写和调试;2. 学生能够运用逻辑思维和问题解决能力,设计并实现简单的图形组合;3. 学生能够通过编写画图程序,提高编程实践能力和创新思维能力。
情感态度价值观目标:1. 学生对c语言编程产生兴趣,树立编程学习的自信心;2. 学生在编程实践中,培养团队合作精神和解决问题的耐心;3. 学生通过画图程序的创作,体验计算机编程的乐趣,提高对信息技术的认识。
课程性质:本课程为信息技术学科,以实践操作为主,注重培养学生的编程能力和逻辑思维能力。
学生特点:六年级学生,具备一定的计算机操作能力和c语言基础,对图形绘制感兴趣,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的编程技能和创新能力。
在教学过程中,关注学生的个体差异,给予个性化指导,确保每个学生都能达到课程目标。
通过课程学习,使学生能够独立完成简单的画图程序,为后续学习奠定基础。
二、教学内容1. c语言画图程序基本概念:介绍画图程序的概念,图形坐标系、图形库的调用方法;2. c语言基本语法复习:回顾变量、数据类型、运算符、控制语句等基本知识;3. 图形绘制函数:讲解并练习常用的图形绘制函数,如画点、画线、画圆等;4. 综合图形绘制:结合所学知识,设计并实现简单的组合图形;5. 画图程序实例分析:分析教材中的典型画图程序实例,讲解其编程思路和技巧;6. 创新设计:鼓励学生发挥创意,设计并实现自己的画图作品;7. 程序调试与优化:教授程序调试的方法,引导学生发现并解决编程过程中的问题。
教学大纲安排:第一课时:回顾c语言基本语法,介绍画图程序基本概念;第二课时:学习图形绘制函数,进行简单的图形绘制练习;第三课时:分析教材中的画图程序实例,讲解编程技巧;第四课时:综合运用所学知识,设计并实现组合图形;第五课时:创新设计,展示与分享学生的画图作品;第六课时:程序调试与优化,提高画图程序的运行效果。
简单画图程序课程设计报告分析

目录1 基本功能描述----------------------------------------------------------12 设计思路----------------------------------------------------------13 软件设计----------------------------------------------------------33.1 设计步骤----------------------------------------------------------33.2 界面设计----------------------------------------------------------73.3 关键功能实----------------------------------------------------------84. 附录----------------------------------------------------------94.1 调试报告----------------------------------------------------------94.2 测试结果----------------------------------------------------------104.3关键源代码---------------------------------------------------------105 结论与心得体会----------------------------------------------------------116. 参考文献----------------------------------------------------------117. 思考题----------------------------------------------------------11简单画图程序1 基本功能描述1) 在单文档菜单中,在菜单行中可插入一个菜单项,命名为绘图,在下拉菜单中可分别设置绘制的图形形状,如直线、矩形及椭圆,线宽选项,有1-5可供选择,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1 基本功能描述----------------------------------------------------------22 设计思路----------------------------------------------------------23 软件设计----------------------------------------------------------43.1 设计步骤----------------------------------------------------------43.2 界面设计----------------------------------------------------------83.3 关键功能实----------------------------------------------------------94. 附录----------------------------------------------------------94.1 调试报告----------------------------------------------------------94.2 测试结果----------------------------------------------------------104.3关键源代码---------------------------------------------------------125 结论与心得体会----------------------------------------------------------116. 参考文献----------------------------------------------------------117. 思考题----------------------------------------------------------11简单画图程序1 基本功能描述1) 在单文档菜单中,在菜单行中可插入一个菜单项,命名为绘图,在下拉菜单中可分别设置绘制的图形形状,如直线、矩形及椭圆,线宽选项,有1-5可供选择,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。
2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形则绘制完毕。
3) 增添工具栏,设置绘制的图形形状,线色以及填充色,可更方便地选择相应的功能。
2 设计思路1) 对需要用到的变量进行初始化。
2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。
选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。
3) 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。
4) 选择图形或其它属性,可进行下一次绘制。
图1 程序流程图3 软件设计3.1 设计步骤1)创建单文档创建一个MFC AppWizard[exe]工程,命名为“yinshuyan”,如图1所示,并创建单文档,如图2所示。
创建成功后,系统自动生成相应的类,如图3所示。
图2 创建工程图3 创建单文档2)编辑菜单添加需要的菜单项,如图4所示;并在菜单的属性中设定好所对应的ID,如图5所示,各项菜单对应的ID如表1所示(其中线宽菜单为弹出菜单,只需在菜单项目属性中的弹出选项前打勾即可,分隔线亦只需在菜单项目属性中选中分隔符选项即可)。
图5 添加菜单项图6 设置菜单ID表1 菜单项对应ID建立类向导,在视图类CyinshuyanView中,对各菜单项添加对应的COMMAND消息处理函数,部分菜单项还添加对应的UPDATE_COMMAND_UI消息函数,如图6所示。
图7 建立类向导3)创建工具栏在插入处选择资源,新建工具栏,如图7所示;在工具栏上添加相应的按钮,在属性处更改其ID,如图8所示。
图9 编辑工具栏4)在相应消息函数处添加代码,实现其功能建立类向导,在视图类CyinshuyanView中,添加WM_PAINT消息,以及WM_LBUTTONDOWN、WM_LBUTTONUP、WM_MOUSEMOVE消息,并在其中添加相应的代码,如图9所示。
图10 添加WM_PAINT消息3.2 界面设计各控件名称,类型,属性及相关变量如表2所示。
3.3 关键功能实现1)选择要绘制的图形在直线、矩形以及椭圆的消息处理函数里为shape分别赋值为1,2,3,在OnPaint()函数里添加3个if语句的代码来这实现这三个图形的绘制:当选择画直线时,shape=1,则执行绘制直线代码,当选择画矩形时,shape=2,则执行绘制矩形的代码,当性选择画椭圆时,shape=3,则执行绘制椭圆的代码。
2)改变线宽在OnPaint()创建的画笔中,pen.CreatePen(PS_SOLID,w, m_nColor),线宽处用w表示,则改变w的值即改变了画笔的粗细。
选择菜单绘图→线宽选择划线宽度值,此时所选的线宽值就赋给线宽变量w。
若不选择线宽值,则w=1(即默认线宽值为1)。
3)改变线色在OnPaint()创建的画笔中,pen.CreatePen(PS_SOLID,w, m_nColor),线的颜色处用m_nColor表示,则改变m_nColor即改变了画笔的颜色。
选择菜单绘图→颜色,会弹出通过WM_COLORREF从系统中引入的颜色选择对话框,选择颜色后,点击确定则相应颜色值就赋给变量m_nColor,此时画笔的颜色就会发上变化。
若不选择颜色,则默认(线)颜色为黑色。
4)改变填充色在OnPaint()创建的画刷中,brush.CreateSolidBrush(m_fColor),颜色就是用m_fColor 表示的,改变m_fColor即改变了画刷的颜色。
选择菜单绘图→填充色,会弹出通过WM_COLORREF从系统中引入的颜色选择对话框,选择颜色后,点击确定则相应颜色值就赋给变量m_fColor,此时画刷的颜色就会发上变化。
若不选择颜色,则默认填充色为黑色。
5)绘制图形鼠标左键按下,则捕获鼠标此时的位置坐标为画图的起点,此时在OnLButtonDown()函数里,将捕获的坐标值赋给定义作为起点的变量opoint;按下鼠标左键拖动鼠标时,捕捉鼠标当前位置坐标值为终点坐标值,此时在OnMouseMove()函数里,把捕获的坐标值赋给定义作为终点的变量cpoint,OnPaint()中绘图的代码中的坐标都得到了,进行绘图;鼠标左键弹起时,此时绘图结束,鼠标弹起时所在位置就是画图的最终终点位置,画图结束后,刷新窗口,以便重新画图,此时执行的是OnLButtonUp()函数。
图11 快捷键的创建4. 附录4.1 调试报告1)一开始我并没有添加刷新函数Invalidate(),这就使程序运行之后,无论鼠标左键按下时如何移动无法绘图,这是因为当一个窗口内键入内容其实就是将窗口刷新了,相当于更新了窗口,故必须有刷新函数,这和生活中的白纸写字不一样。
2)当添加Invalidate()后,我把Invalidate()放在OnMouseMove()里,但是这样只能在窗口内画一个图形,即每画完一个图形就刷新一次。
之后我通过与同学讨论,并查找资料将Invalidate()改为了Invalidate(0),这时是可绘制多个图形,但鼠标每移动一个位置都进行一次刷新,绘图结束后,绘图过程中的所有痕迹都在,产生了很多拖动的影子。
,经过几次试验,我将Invalidate(0)放在了OnLButtonUp()中,那么每次重绘,上次的图形会作为背景被保留下来,而不会被刷新掉。
4.2 测试结果1)点击链接,编译,运行后的窗口如图11所示。
图11 运行结果2)改变绘制图形形状,颜色,线宽,填充色之后绘制的图形如图12所示。
图12 改便各项属性厚后的图形4.3 关键源代码1)在“MainFrm.h”中,在class CMainFrame : public CFrameWnd里的protected下定义:CToolBar m_drawToolBar; //工具栏2)在“MainFrm.cpp”中,在CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)里添加以下代码:if (!m_drawToolBar.Create(this) ||!m_drawToolBar.LoadToolBar(IDR_DRAW)){ TRACE0("Failed to create status bar\n");return -1;}3)在“YinshuyanView.h”中,在class CYinshuyanView : public CView里的public下定义相关变量:COLORREF m_nColor;COLORREF m_fColor;CPoint cpoint;CPoint opoint;BOOL m_Down;int w;int shape;4)在“YinshuyanView.cpp”中,添加如下函数及代码:CYinshuyanView:: CYinshuyanView(){ w=1; //初始线宽默认为1shape=0;}void CYinshuyanView::OnW1(){w=1; //令线宽为1}void CYinshuyanView::OnW2(){w=2; //令线宽为2}void CYinshuyan::OnW3(){w=3; //令线宽为3}void CYinshuyanView::OnW4(){w=4; //令线宽为4}void CYinshuyanView::OnW5(){w=5; //令线宽为5}void CYinshuyanView::OnUpdateW1(CCmdUI* pCmdUI){pCmdUI->SetRadio(w==1); //当线宽为1时,此选项前标有圆点}void CYinshuyanView::OnUpdateW2(CCmdUI* pCmdUI){pCmdUI->SetRadio(w==2); //当线宽为2时,此选项前标有圆点}void CYinshuyanView::OnUpdateW3(CCmdUI* pCmdUI){pCmdUI->SetRadio(w==3); //当线宽为3时,此选项前标有圆点}void CYinshuyanView::OnUpdateW4(CCmdUI* pCmdUI){pCmdUI->SetRadio(w==4);}void CYinshuyanView::OnUpdateW5(CCmdUI* pCmdUI){pCmdUI->SetRadio(w==5);}void CYinshuyanView::OnLine(){shape=1; //选择直线,则令shape为1}void CYinshuyanView::OnRect(){shape=2; //选择矩形,则令shape为2}void CYinshuyanView::OnEllipse(){shape=3; //选择椭圆,则令shape为3}void CYinshuyanView::OnUpdateLine(CCmdUI* pCmdUI){pCmdUI->SetCheck(shape==1); //shape为1时,直线选项前打上勾}void CYinshuyanView::OnUpdateRect(CCmdUI* pCmdUI){pCmdUI->SetCheck(shape==2); //shape为2时,矩形选项前打上勾}void CYinshuyanView::OnUpdateEllipse(CCmdUI* pCmdUI){pCmdUI->SetCheck(shape==3); //shape为3时,椭圆选项前打上勾}void CYinshuyanView::OnColor(){CColorDialog Color; // 创建颜色对话框if(Color.DoModal() == IDOK) // 如果用户点击OK按钮m_nColor=Color.GetColor(); // 更改颜色,把颜色赋到m_nColor }void CYinshuyanView::OnFullColor(){CColorDialog FullColor; // 创建颜色对话框if(FullColor.DoModal() == IDOK) // 如果用户点击OK按钮m_fColor=FullColor.GetColor(); // 更改颜色,把颜色赋到m_fColor }void CYinshuyanView::OnPaint(){CPaintDC dc(this); // device context for paintingCPen pen; //定义画笔CBrush brush; //定义画刷pen.CreatePen(PS_SOLID,w, m_nColor); //创建画笔brush.CreateSolidBrush(m_fColor); //创建画刷dc.SelectObject(&pen); //获取画笔dc.SelectObject(&brush); //获取画刷if(shape==1){dc.MoveTo(opoint.x,opoint.y);dc.LineTo(cpoint.x,cpoint.y);} //绘制直线,从opoint到cpoint连线if(shape==2)dc.Rectangle(opoint.x,opoint.y,cpoint.x,cpoint.y); //绘制矩形if(shape==3)dc.Ellipse(opoint.x,opoint.y,cpoint.x,cpoint.y); //绘制椭圆}void CYinshuyanView::OnLButtonDown(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call defaultm_Down=TRUE; //鼠标按下SetCapture(); //获取坐标opoint=point; //把鼠标所在坐标赋给起点坐标opointReleaseCapture(); //释放坐标CView::OnLButtonDown(nFlags, point);}void CYinshuyanView::OnMouseMove(UINT nFlags, CPoint point){if(m_Down) //如果鼠标按下cpoint=point; //把鼠标所在点坐标赋给终点坐标cpointCView::OnMouseMove(nFlags, point);}void CYinshuyanView::OnLButtonUp(UINT nFlags, CPoint point){m_Down=FALSE; //鼠标不按下,即弹起Invalidate(0); //刷新CView::OnLButtonUp(nFlags, point);}5 结论与心得体会这次课程设计我成功的完成了。