版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VC+程序设计课程设计报告书题目: 绘图软件设计 班级: 学号: 姓名: 指导教师: 周期: 成绩: 一、课程设计的目的与要求 (一)课程设计目的与任务目的:根据自身对visual c+ 的学习,通过此次上机实践,加深对visual c+ 各类控件的知识。充分了解各个控件之间的使用及数据的传递方法,根据所学习的类、变量、函数来完成一项简单的课程设计,实现画图软件的功能任务:使用visual c+.net完成所选择的课程设计的题目以及题目中所要求实现的相关功能与要求,并且通过本次的课程设计,让自己对visual c+ 有进一步的理(二)题目要求单文档应用程序,能够选择图形的类型(圆,矩形,直线,
2、画笔),能够选择图形的颜色,能够对绘制的图形进行颜色填充,能够选择图形的线型(如实线,虚线),能够选择画线的颜色和线的宽度。二、设计正文1 、系统分析 对需要用到的变量进行初始化,选择相应的图形之后就响应相应的消息处理函数,赋对应的值。选择不同 的线宽,线色与填充色,鼠标的按下响应函数 OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标 的拖动响函数 OnMouseMove()改变终点的坐标,鼠标的弹起响应 OnLButtonUp(),确定终 点坐标,得到绘制图形。2、 功能详细描述及框图3、主要功能逻辑过程绘制图形: 鼠标左键按下,则捕获鼠标此时的位置坐标为画图的起点,此时
3、在 OnLButtonDown() 函数里,将捕获的坐标值赋给定义作为起点的变量;按下鼠标左键拖动鼠标时,捕 捉鼠标当前位置坐标值为终点坐标值,此时在 OnMouseMove()函数里,把捕获的坐标值赋 给定义作为终点的变量,绘图代码中的坐标都得到了,进行绘图;鼠标左键弹起时,此时绘图结束,鼠标弹起时所在位置就是画图的最终终点位置,此时执行的是 OnLButtonUp()函数主要算法:int CMy1109113112View:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CView:OnCreate(lpCreateStruct) = -1)retur
4、n -1; pdc=new CClientDC(this); color=RGB(0,0,0);tccolor=RGB(255,255,255);width=1; style=0; tcstyle=5; type=4; a=false;tc=false;return 0;void CMy1109113112View:OnLButtonDown(UINT nFlags, CPoint point)p1=p2=point;pen.CreatePen(style,width,color);pdc-SelectObject(&pen);if(tc)bsh.CreateHatchBrush(6,tcco
5、lor);pdc-SelectObject(&bsh);elsepdc-SelectStockObject(NULL_BRUSH);pdc-SetROP2(R2_NOTXORPEN);a=true;CView:OnLButtonDown(nFlags, point);void CMy1109113112View:OnLButtonUp(UINT nFlags, CPoint point)pdc-SetROP2(R2_COPYPEN);if(type=1)pdc-MoveTo(p1.x,p1.y);pdc-LineTo(point.x,point.y);else if(type=2)pdc-El
6、lipse(p1.x,p1.y,point.x,point.y);else if(type=3)pdc-Rectangle(p1.x,p1.y,point.x,point.y);else if(type=4)pdc-MoveTo(p1.x,p1.y);pdc-LineTo(point.x,point.y);a=false;pen.DeleteObject();bsh.DeleteObject();void CMy1109113112View:OnMouseMove(UINT nFlags, CPoint point)if(!a)return;if(type=1)pdc-MoveTo(p1.x,
7、p1.y);pdc-LineTo(p2.x,p2.y);p2=point;pdc-MoveTo(p1.x,p1.y);pdc-LineTo(p2.x,p2.y);else if(type=2)pdc-Ellipse(p1.x,p1.y,p2.x,p2.y);p2=point;pdc-Ellipse(p1.x,p1.y,p2.x,p2.y);else if(type=3)pdc-Rectangle(p1.x,p1.y,p2.x,p2.y);p2=point;pdc-Rectangle(p1.x,p1.y,p2.x,p2.y);else if(type=4)p2=point;pdc-MoveTo(
8、p1.x,p1.y);pdc-LineTo(p2.x,p2.y);p1=point;CMainFrame *pFrame=(CMainFrame *)AfxGetApp()-m_pMainWnd;CStatusBar *pStatus=&pFrame-m_wndStatusBar;CString str;if(pStatus)str.Format(_T(X=%d),point.x);pStatus-SetPaneText(4,str);str.Format(_T(Y=%d),point.y);pStatus-SetPaneText(pStatus-CommandToIndex(IDS_Y),s
9、tr);CView:OnMouseMove(nFlags, point);4、界面设计图一 绘图类型菜单图二 填充颜色菜单图三 选择线型菜单图四 工具栏菜单图五 画图后界面 5、系统测试进行非正常操作的模拟时,如鼠标乱点、乱画,绘制大量的图形等,会出现窗口,提示“Debug Asserttion Failled“,应操作慢一点或者在客户区进行。三、小组成员分工说明独立完成四、课程设计总结或结论1 课程设计过程中出现的技术难点和解决方法:难的是代码的 添加,对绘制图形的程序有大概的思路,但具体编写时变量的运用以及函数的调用设置。 这次实验中关键就是确定画图起点及终点坐标,因为是用鼠标绘制图形,所以需用函数来 捕获鼠标当前所在位置的坐标,因此我设置了 OnLButtonDown()函数来捕获起点坐标, OnMouseMove()函数来捕获鼠标移动是的当前位置坐标, OnLButtonUp()函数来捕获终点坐 标。2 课程设计期间的主要收获:这次课程设计虽只是做了一个极其简单的绘图工具的制作,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年企业人力资源管理师劳动法知识测验卷及答案
- 2025年全科规培考试试题及答案
- 2025年下半年嘉兴市消防支队文职雇员招考易考易错模拟试题(共500题)试卷后附参考答案
- 2025全面汽车租赁合同范本
- 2025年下半年哈尔滨市平房区事业单位招考考试(47名)易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年哈尔滨依兰县事业单位招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年周口师范学院招考教师易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年吉林省松原市乾安县桑梓人才“回归”暨事业单位招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年吉林白城洮北区事业单位专项招聘高校毕业生41人(2号)易考易错模拟试题(共500题)试卷后附参考答案
- 2025股东内部委托合同示范文本
- 装修工艺标准培训课件
- 军品价格管理办法原文
- 2025-2030中国藻红蛋白行业市场发展趋势与前景展望战略研究报告
- 2025中国南水北调集团有限公司社会招聘37人笔试参考题库附带答案详解
- 下肢静脉曲张的围手术期护理
- T/CNFA 1-2017定制家具
- (高清版)DG∕TJ 08-011-2002 切断型钢纤维混凝土应用技术规程
- 新疆喀什理工职业技术学院招聘考试真题2024
- 公路代建合同标准文本
- 质量目标及质量保证措施计划
- 2024年上海工程技术大学专任教师招聘笔试真题
评论
0/150
提交评论