欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    mfc简单绘图程序.docx

    • 资源ID:1377335       资源大小:199.57KB        全文页数:40页
    • 资源格式: DOCX        下载积分:7金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要7金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    mfc简单绘图程序.docx

    简单的绘图程序王帅书目摘要2¥靖至9J(/12设计目的脩馔:未定义书签.2功能说明22.1 菜单栏傅调:未定义书签.图形3画笔4画硬币42.2 工具栏52.3 状态栏53功能的实现53.1 v*3.2 aa63.3 编程思路及各个函数的实现7用喊7(2)代码的实现71 .为基本形态创建一个基类82 .基本形态类的创建82.1 矩形类的创建及定义82.2 圆形类的创建及定义102.3 正五边形类的创建及定义112.4 正三角形类的创建及定义142S椭圆类的创建及定义162.6 正四边形类的创建及的定义172.7 正六边形类的创建及定义182.8 直线类的创建及定义193 .各基本形态类在CMyDraw2_0类中的调用和绘图的实现203.1 矩形类的调用及及绘图的实现203.2 圆形类的调用243.3 正三角形类的调用253.4 基本类型调用的黑余代码264 .画笔的运用、颜色及大小的调整295 .画硬币356 .工具栏中的自定义控件387 .状态栏中的显示394程序功能的测试41542摘要I本绘图程序能够进行基本图形的绘画,如直线,圆,矩形,三角形等等,并且在此基础上添加了多边形的绘画,如正五边形等.除此之外,还能够进行顺手画,即用M标随意画线条。为了更好的绘图,还添加了对画笔粗细的调整,以及对画笔颜色的调整,除了特定的颜色,颜色还可依据输入的RGB值随意更改。还有一些老师的要求,加入了画硬币、显示硬币数目即鼠标坐标等信息。本程序主要采纳面对对象写法。关键字:程序设计,MFC,绘图1 .引言设计目的本绘图程序的设计不仅仅局限于老师课堂的要求,通过C+的编写实现绘图要求,我还想要在此基础上,加入自己的一些想法,想要更好地了解MFa更好地去实现H己的想法。2 .功能说明2.1 菜单栏图形图形栏中包括直线、矩形、圆形、椭圆、多边形,多边形中包括正三角形、正四边形、正五边形、正六边形。选择直线,可用鼠标拖动画出一条直线选择矩形,可用鼠标推动画出矩形选择圆形,可用就标拖动画出圆形选择椭圆,可用鼠标拖动画出椭圆选择正三角形,可用鼠标拖动画出正三角形选择正四边形,可用鼠标拖动画出正方形选择正五边形,可用鼠标拖动画出正五边形选择正六边形,可用鼠标拖动画出正六边形t注:为了验证自己的想法以及想让画出的图形随意地变换方向,特意在正三角形一项中加入了旋转效果,使鼠标在推动时能旋转三角形)画笔画箔栏中包括颜色、大小及铅笔(D颜色颜色中包括黑色、红色、绿色、蓝色、橙色、黄色、吉色、紫色、粉色、自定义选择黑色,画出的图形将为黑色选择红色,画出的图形将为红色选择绿色,画出的图形将为绿色选择橙色,画出的图形将为橙色选择黄色,画出的图形将为黄色选择音色,画出的图形将为青色选择紫色,画出的图形将为紫色选择粉色,画出的图形将为粉色选择自定义,可输入RGB值,画出的图形将显示输入的颜色(2)大小大小中包括1、2、3、4、5、6、7选择1,画笔大小设为1选择2,画笔大小设为2选择3,画笔大小设为3选择4,画笔大小设为4选择5,画笔大小设为5选择6,画笔大小设为6选择7,画笔大小设为7(3)铅笔选中钳笔后,将可以用鼠标进行随意画经画硬币画硬币中包括画、增加、削减、清除选择画,将在客户端窗口中画出初始数班为IO的硬币选择增加,窗口中的硬币数目将增加1个选择削减,窗口中的硬币数目将削减1个选择清除,刷新窗口,将硬币消去2.2工具栏工具栏中除了原有的图标外,还加入了自定义的图标选择/,可用鼠标拖动画出条直线选齐口,可用鼠标拖动画出矩形选择°,可用鼠标拖动画出圆形选择9,可用鼠标拖动画出正三角形选择二二,可用鼠标进行顺手画选择+,可在窗口画出硬币后,将硬币数量+1选择一,可在窗口画出硬币后,将硬币数增-1选择Q,可利用鼠标对所绘图形进行擦除,橡皮擦的大小及画宅大小相同2.3状态栏状态栏中除了原有的显示外,还加入了硬币的数量以及鼠标的X坐标和y坐标3.功能的实现3.1 视图设计,利用MFC生成画图应用程序框架具体步骤如下:执行VC程序,选择吩咐,弹出New对话框.单击Projects标签,转至JProjects选项卡,选择MFCAPPWiZard(CXe)选项,然后在Projectname文本框中输入MyDraW2_0(原来也做过个,不过并没有以面对对彖的写法去写,这个就当作是我的其次个版本),文本框是指项目的本地路径。(2)由于本程序是实现画线,要在视图中完成,所以首先创建一个博于单文档的应用程序3.2 编辑资源利用Res。UrCevieW中的Menu编辑器在菜单栏添加菜单,该流程图如下3.2所示:图3.2(2)利用RCSOUrVCViCW中的TOOIBar编辑器,在工具栏中添加自定义控件。控件图案如E所示:/口OA-P-R3.3 编程思路及各个函数的实现(h思路:首先,画定义好的形态。直线、矩形、圆形等等都属于基本的形态,那么我设定一个基类,称它为CShape.给这个基类定义一个画画的虚函数DraW(CDC*pDC),在这个类里面派生出各个须要的类,如CeirdC类,并为这些派生类定义芬自的属性及方法,重写基类的DraW函数。当我须要用到这些类的时候,只须要在VieW类里创建指针,然后调用里面DraW方法。由于是当副标拖动的时候画出所需的图形,须要添加鼠标响应函数,On1.BUUOnDoWn(),On1.BuHOnUP,以及OnMOUSCMOVe()。画画主要是在OnMOuSCMOVC()里实现”接着,是画笔的颜色和大小,原来是想革独创建一个画笔类,定义颜色和大小属性,使CCirde等派生类多继承,在继承个画笔类,但普试了几遍,发觉在菜单里选择颜色时就会使程序停止运行,于是就放弃/重新构思之后,由T画图是在CMyDraW2_0里实现的,就干脆在CMyDraw2.0中定义了颜色和大小的变量,这样也便利。然后是画硬币。并没有为这个创建单独的类,干脆在CMyDmW2_0中的OnDraWO中画硬币,并且在CMyDraw2J)中添加了梢加和削减硬币的方法。工具栏中只要和为各个图标添加函数,作用和菜单栏中的图形一栏中时应即可。最终还有硬币的数员和鼠标坐标放在状态栏中显示,下面起先进行函数代码的实现。(2求码的实现:1为基本形态创建一个基类.命名为CShaPe在ClassVicwz中右键点击MyDraw2.0classcs->ncwclass,在弹出窗11的顶部F拉框中选择GCnCriCClass,如图所示类信息名称同:CShape文件名:Shapc1.cppJE(C).I基类旧):DerivedFrom胸类的类型:GcnericClass在头文件中添加虚函数DraW(CDC*pDC)public:CShapc();virtualDraW(CDC"pDc>=():添加的虚函数virtual-CShape();2 .基本形态类的创建旌:以矩形、BS形、正五边形、正三边形为点介绍)2.1 矩形类的创建及定义创建个矩形类,维承CShape类,如图ua类的类型:GencricClass三|确定类信息取用名林旧:CRectangle文件名:Rectanglelxpp更改的基类IB):在该类中重新定义画画函数DnIW(),并添加带参数的构造函数,矩形的左上角,以及矩形的宽度和高度,代码如下:Public:CRectangleO;Draw(CDC*=pDC);重新定义Draw函数CPointPOinJ1.CflUp;矩形的左上角坐标CRcctanglc(intx.inty.intw=0.inth=0);带参数的构造函数表示左上角的横坐标,y表示左上角的纵坐标intwidth;矩形的宽度intheight;矩形的高度virtual-CRectangIef);在无参数构造函数中初始化point.1.eftUp的坐标和宽度以及高度的值,代码如下:CRectangleriCRectangleOpint-1.cftUp.x=O;左上角坐标X值设置为OPOin1.1.CftUP.y=0:左上角坐标X值设置为OWidth=O:矩形的宽度初始为O>eight=();矩形的高度初始为O在带参数的构造函数中将值赋给POiniJefiUp和宽度以及高度,代码如下:POin1.1.efWp.x=x;Poini_I.eftUp.y=y;width=w;hcight=h;将传入的X值赋绐左上角坐标的X值将传入的y值赋给左上角坐标的y值将传入的W值赋给width将传入的h值赋给height筑写DraW(CDC*PDC)函数,代码如下:CRcctanglc:Draw(CDC*PDC)(PDC->Reciangle(poini_IWnUP.x,poini.efiUp.y,POin1.l尤ftUp.x+widih,POin1.1.CnUP.y+hcight);利用RCCtangIe。函数画出矩形,其中的值分别为矩形的左上角横坐标,左上角纵坐标.右下角横坐标,右下角纵坐标在CMyDraW2_0View中引入矩形类的头文件:双击CMVDraW2_0VieW,在代码HMyDraw2_()Vicw.h:interfaceoftheCMyDraw2-0Vicwclass/III出IIItIllll用出IMIIIIIlI由H出出MliIlllm出IlIlItIII也H出III#if!dcfinc<l(AFX_MYDRAV2_0VIEW_H_3809529C_6744_4AD2_80A4_D44683DOA5AF_INC1.UDEDJIefineAFX_MYDRAW2_()VIEW_H_38W529C_6744_4AD2_80A4_D44683D()A5AF_INC1.UDED_下添加如下代码:#includc"Rcctangle.h"并在VieW类中添

    注意事项

    本文(mfc简单绘图程序.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开