欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C++实验报告MFC简单画图程序.docx

    • 资源ID:1575524       资源大小:111.76KB        全文页数:16页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    C++实验报告MFC简单画图程序.docx

    1、C+实验报告MFC简单画图程序VC+程序设计实验报告一、实验目的掌握MFC编程二、实验内容用MFC向导创建单文档应用程序,一个简单的画图程序。使用C语言实现使用VC6.0集成开发环境开发使用MFC应用程序开发框架三、实验步骤基本功能描述1.打开exe文件,在绘图下拉菜单中可分别设置绘制的图形形状,如直线、曲线、矩形及椭圆,线宽选项,有1-6可供选择,线型选项有实线、虚线、点线和点段线供设置,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。2. 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确

    2、定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形则绘制完毕。设计思路1. 对需要用到的变量进行初始化。2. 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。3. 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。4. 选择图形或其它属性,可进行下一次绘制。 软件设计A 设计步骤 1.创建单文档 创建一个MFC

    3、 AppWizardexe工程,命名为“Draw”,如图1所示,并创建单文档,如图2所示。创建成功后,系统自动生成相应的类,如图3所示。图1 创建工程图2 创建单文档图3 生成类2.编辑菜单添加需要的菜单项,如图4所示;并在菜单的属性中设定好所对应的ID,如图5所示,各项菜单对应的ID如表1所示(其中线宽菜单为弹出菜单,只需在菜单项目属性中的弹出选项前打勾即可,分隔线亦只需在菜单项目属性中选中分隔符选项即可)。图4 添加菜单项图5 设置菜单ID表1 菜单项对应ID菜单名ID菜单名ID菜单名ID直线ID_LINE线宽1ID_W1实线ID_SOLID矩形ID_RECT线宽2ID_W2虚线ID_DA

    4、SH椭圆ID_ELLIPSE线宽3ID_W3点线ID_DOT颜色ID_COLOR线宽4ID_W4点段线ID_DASHDOT填充色ID_FILLCOLOR线宽5ID_W5 建立类向导,在视图类CDrawView中,对各菜单项添加对应的MAND消息处理函数,部分菜单项还添加对应的UPDATE_MAND_UI消息函数,如图6所示。图6 建立类向导 3.在相应消息函数处添加代码,实现其功能建立类向导,在视图类CDrawView中,添加WM_PAINT消息,以及WM_LBUTTONDOWN、WM_LBUTTONUP、WM_MOUSEMOVE消息,并在其中添加相应的代码。B 关键功能实现 1.选择要绘制的

    5、图形在直线、矩形以及椭圆的消息处理函数里为shape分别赋值为1,2,3,在OnPaint()函数里添加3个if语句的代码来这实现这三个图形的绘制:当选择画直线时,shape=1,则执行绘制直线代码,当选择画矩形时,shape =2,则执行绘制矩形的代码,当性选择画椭圆时,shape=3,则执行绘制椭圆的代码。2.改变线宽在OnPaint()创建的画笔中,pen.CreatePen(penstyle,w, m_nColor),线宽处用w表示,则改变w的值即改变了画笔的粗细。选择菜单绘图线宽选择划线宽度值,此时所选的线宽值就赋给线宽变量w。若不选择线宽值,则w=1(即默认线宽值为1)。3.改变线

    6、型 在OnPaint()创建的画笔中,pen.CreatePen(penstyle,w, m_nColor),线型处用penstyle表示,则改变penstyle的值即改变了画笔的类型。选择菜单绘图线型选择线型,此时所选的线型就赋给线型变量penstyle。若不选择线型值,则penstyle=ID_SOLID(即默认线型为实线)。4.改变线色 在OnPaint()创建的画笔中,pen.CreatePen(penstyle,w, m_nColor),线的颜色处用m_nColor表示,则改变m_nColor即改变了画笔的颜色。选择菜单绘图颜色,会弹出通过WM_COLORREF从系统中引入的颜色选择

    7、对话框,选择颜色后,点击确定则相应颜色值就赋给变量m_nColor,此时画笔的颜色就会发上变化。若不选择颜色,则默认(线)颜色为黑色。4.改变填充色 在OnPaint()创建的画刷中,brush.CreateSolidBrush(m_fColor),颜色就是用m_fColor表示的,改变m_fColor即改变了画刷的颜色。选择菜单绘图填充色,会弹出通过WM_COLORREF从系统中引入的颜色选择对话框,选择颜色后,点击确定则相应颜色值就赋给变量m_fColor,此时画刷的颜色就会发上变化。若不选择颜色,则默认填充色为黑色。5.绘制图形鼠标左键按下,则捕获鼠标此时的位置坐标为画图的起点,此时在O

    8、nLButtonDown()函数里,将捕获的坐标值赋给定义作为起点的变量opoint;按下鼠标左键拖动鼠标时,捕捉鼠标当前位置坐标值为终点坐标值,此时在OnMouseMove()函数里,把捕获的坐标值赋给定义作为终点的变量cpoint,OnPaint()中绘图的代码中的坐标都得到了,进行绘图;鼠标左键弹起时,此时绘图结束,鼠标弹起时所在位置就是画图的最终终点位置,画图结束后,刷新窗口,以便重新画图,此时执行的是OnLButtonUp()函数。四、 结果及源代码4.1 运行结果1.点击,编译,运行后的窗口如图7所示。图7 运行结果4.2 程序代码1.在视图类构造函数中对各定义变量初始化CDraw

    9、View:CDrawView() w=1;/初始状态时线宽 shape=1;/初始状态时形状 m_nColor=RGB(0,0,0);/初始状态时线色 m_fColor=RGB(0,0,0);/初始状态时填充色 penstyle=PS_SOLID;/初始化线型为实线2.形状函数void CDrawView:OnLine() shape=1;void CDrawView:OnRect() shape=2;void CDrawView:OnEllipse() shape=3;3.线宽改变函数void CDrawView:OnW1() w=1; void CDrawView:OnW2() w=2;v

    10、oid CDrawView:OnW3() w=3;void CDrawView:OnW4() w=4;void CDrawView:OnW5() w=5;void CDrawView:OnW6() w=6; 4.线型选择函数void CDrawView:OnSolid() penstyle=PS_SOLID; void CDrawView:OnDash() penstyle=PS_DASH; void CDrawView:OnDot() penstyle=PS_DOT;void CDrawView:OnDashdot() penstyle=PS_DASHDOT; 5.颜色选择函数void CD

    11、rawView:OnColor() CColorDialog Color;/创建颜色对话框 if(Color.DoModal()=IDOK)/如果用户点击OK按钮 m_nColor=Color.GetColor();/更改颜色,把颜色赋到m_nColor 6.填充色选择函数void CDrawView:OnFullcolor() CColorDialog FullColor;/创建颜色对话框 if(FullColor.DoModal()=IDOK)/如果用户点击OK按钮 m_fColor=FullColor.GetColor();/更改颜色,把颜色赋到m_nColor 7.单击、移动、绘画函数

    12、void CDrawView:OnLButtonDown(UINT nFlags, CPoint point) m_Down=TRUE; /鼠标按下 SetCapture(); /获取坐标 opoint=point; /把鼠标所在坐标赋给起点坐标opoint ReleaseCapture(); /释放坐标 CView:OnLButtonDown(nFlags, point);void CDrawView:OnLButtonUp(UINT nFlags, CPoint point) m_Down=FALSE; /鼠标不按下,即弹起 Invalidate(0); /刷新 CView:OnLButt

    13、onUp(nFlags, point);void CDrawView:OnMouseMove(UINT nFlags, CPoint point) if(m_Down) /如果鼠标按下 cpoint=point; /把鼠标所在点坐标赋给终点坐标cpoint CClientDC dc(this); if(4=shape)/画曲线 CPen pen(PS_SOLID,10,RGB(255,0,0); CPen *oldpen=dc.SelectObject(&pen); dc.MoveTo(opoint); dc.LineTo(cpoint); dc.SelectObject(oldpen); o

    14、point=cpoint; CView:OnMouseMove(nFlags, point);void CDrawView:OnPaint() CPaintDC dc(this); / device context for painting CPen pen; /定义画笔 CBrush brush; /定义画刷 pen.CreatePen(penstyle,w, m_nColor); /创建画笔 brush.CreateSolidBrush(m_fColor); /创建画刷 dc.SelectObject(&pen); /获取画笔 dc.SelectObject(&brush); /获取画刷

    15、if(1=shape)/画直线 dc.MoveTo(opoint.x,opoint.y); dc.LineTo(cpoint.x,cpoint.y); /绘制直线,从opoint到cpoint连线 if(2=shape)/画矩形 dc.Rectangle(opoint.x,opoint.y,cpoint.x,cpoint.y); /绘制矩形 if(3=shape)/画椭圆 dc.Ellipse(opoint.x,opoint.y,cpoint.x,cpoint.y);/绘制椭圆 8.菜单勾选函数void CDrawView:OnUpdateLine(CCmdUI* pCmdUI) pCmdUI

    16、-SetCheck(shape=1); /shape为1时,直线选项前打上勾void CDrawView:OnUpdateRect(CCmdUI* pCmdUI) pCmdUI-SetCheck(shape=2); /shape为2时,直线选项前打上勾void CDrawView:OnUpdateEllipse(CCmdUI* pCmdUI) pCmdUI-SetCheck(shape=3); /shape为3时,直线选项前打上勾void CDrawView:OnUpdateW1(CCmdUI* pCmdUI) pCmdUI-SetRadio(w=1); /当线宽为1时,此选项前标有圆点voi

    17、d CDrawView:OnUpdateW2(CCmdUI* pCmdUI) pCmdUI-SetRadio(w=2); /当线宽为2时,此选项前标有圆点 void CDrawView:OnUpdateW3(CCmdUI* pCmdUI) pCmdUI-SetRadio(w=3); /当线宽为3时,此选项前标有圆点void CDrawView:OnUpdateW4(CCmdUI* pCmdUI) pCmdUI-SetRadio(w=4); /当线宽为4时,此选项前标有圆点void CDrawView:OnUpdateW5(CCmdUI* pCmdUI) pCmdUI-SetRadio(w=5)

    18、; /当线宽为5时,此选项前标有圆点 void CDrawView:OnUpdateW6(CCmdUI* pCmdUI) pCmdUI-SetRadio(w=6); /当线宽为6时,此选项前标有圆点void CDrawView:OnUpdateSolid(CCmdUI* pCmdUI) pCmdUI-SetRadio(penstyle=PS_SOLID); /当线型为实线时,此选项前标有圆 点void CDrawView:OnUpdateDash(CCmdUI* pCmdUI) pCmdUI-SetRadio(penstyle=PS_DASH); /当线型为虚线时,此选项前标有圆点 void CDrawView:OnUpdateDot(CCmdUI* pCmdUI) pCmdUI-SetRadio(penstyle=PS_DOT); /当线型为点线时,此选项前标有圆点 void CDrawView:OnUpdateDashdot(CCmdUI* pCmdUI) pCmdUI-SetRadio(penstyle=PS_DASHDOT); /当线型为点段线时,此选项前标有圆点


    注意事项

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

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




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

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开