C++课设:简单画图程序

C++课设:简单画图程序

ID:47082180

大小:274.92 KB

页数:36页

时间:2019-07-19

C++课设:简单画图程序_第1页
C++课设:简单画图程序_第2页
C++课设:简单画图程序_第3页
C++课设:简单画图程序_第4页
C++课设:简单画图程序_第5页
资源描述:

《C++课设:简单画图程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、武汉理工大学《面向对象程序设计》课程设计说明书简单画图程序1.基本功能描述本次课程设计的任务是利用计算机和VC开发环境编写一个简单画图程序,该程序的设计指标(即主要功能)有:①用鼠标拖动绘制圆、椭圆、矩形,线等基本图形;②能控制画笔的线宽和颜色;③能对图形进行颜色填充;④在鼠标移动的过程中能实时显示当前绘制的图形。除了以上几点功能,我有另外添加了工具栏、铅笔、橡皮等功能来使程序更方便地让用户使用,简化了人机交互的过程。2.设计思路首先是界面的问题,既然课设的题目是简单画图,那在建立工程的时候就要选择文档结构而不是以前做的基于对话框。可选择单文档结构或多文档

2、结构,但想到画图界面一般只有一个,从简洁的角度考虑,选择单文档结构。而且用户界面在设计的时候要尽可能简单美观,一目了然,对相应功能有图标提示,使用户方便使用。然后便是画图功能的具体实现。分析课设要求,可以发现功能一要求的的椭圆、矩形、直线可以分别通过Ellipse();、Rectangle();、MoveTo();、LineTo();这四个函数来实现。功能二控制画笔线宽和颜色可以给二者分别关联参数,通过改变线宽参数值来控制线宽,通过调用通用对话框改变颜色参数值来控制颜色。功能三对图形进行颜色填充虽以前未接触过,但查阅资料后发现可以调用ExtFloodFil

3、l();并合理设定参数值来实现。功能四的实时显示功能可以通过调用MouseMove();函数来实现。这些功能需要建立菜单资源来表示各个功能选项,并建立相应的消息响应函数来进行实现。另外,画图程序主要是通过鼠标来进行操作,所以要对鼠标消息的响应及处理函数多下功夫来思考和编写。至于额外添加的功能,工具栏通过添加工具栏资源和关联相应菜单中画图功能ID实现;铅笔、橡皮的功能则是利用MouseMove();函数,在其中做了一些改动来实现。2武汉理工大学《面向对象程序设计》课程设计说明书开始2.1.程序流程图:变量初始化(m_nDrawType,m_clr等)响应函数

4、m_Pen(m_Eraser)=TRUE并将其他橡皮(铅笔)、填充等所关联变量置为FALSE.响应函数创建相应对话框线宽线型设置点直线矩形填充铅笔橡皮更改变量m_clr(m_nLineWidth,m_nLineStyle)参数值图1程序流程图MouseMove函数画直线进行填充鼠标左键弹起响应函数m_ptOldOrigin=point;m_LButtonDown=TRUE;画点结束画椭圆画矩形鼠标左键按下响应函数m_ptNewOrigin=point;m_ptOldOrigin=point;m_LButtonDown=TRUE;判断各参数值以确定功能铅笔功

5、能橡皮功能IDOK==1?颜色选择椭圆响应函数m_nDrawType=1/2/3/4;对应点、直线、矩形、椭圆响应函数m_Fill=TRUE并将其他橡皮、铅笔等所关联变量置为FALSE.2武汉理工大学《面向对象程序设计》课程设计说明书3.软件设计3.1.设计步骤1)打开VS2010,选择新建项目,选中MFC应用程序,标题为CWN_Graphic;2)选择单文档结构,其他为默认值,点击完成。3.2.界面设计3.2.1.添加菜单1)选择资源视图,鼠标右键,添加,资源;2)在资源视图中打开添加的菜单资源,将各个功能的名称添加进去并合理安排,并设置好相应的ID,如

6、图2:图2编辑菜单及相应ID3.2.2.添加工具栏1)在资源视图下右键选择添加资源,ToolBar;2)打开新建的工具栏,在上面添加各个小按钮,按钮图像自行画出;20武汉理工大学《面向对象程序设计》课程设计说明书1)将每个按钮的ID与菜单项一一对应起来,如图3:图3工具栏样式及ID3.3.关键功能实现1)打开类向导;2)为各个菜单项添加消息函数,如图4:20武汉理工大学《面向对象程序设计》课程设计说明书图4添加消息函数相关ID、关联变量及响应函数如表1:表1相关功能ID及所关联变量名称ID关联变量响应函数点IDM_DOTm_nDrawType=1OnDot

7、()直线IDM_LINEm_nDrawType=2OnLine()矩形IDM_RECTANGLEm_nDrawType=3OnRectangle()椭圆IDM_ELLIPSEm_nDrawType=4OnEllipse()20武汉理工大学《面向对象程序设计》课程设计说明书画笔IDM_PENm_Pen=TRUEOnPen()填充IDM_FILLm_Fill=TRUEOnFill()橡皮(小)IDM_ERASER1-OnEraser1()橡皮(中)IDM_ERASER2-OnEraser2()橡皮(大)IDM_ERASER3-OnEraser3()线宽+线型I

8、DM_LINE_WIDTH-OnLineWidth()颜色IDM_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。