- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简易绘图程序使A用PI和MFC
XXX大学程序设计实践报告课题名称: 程序设计实践 学生姓名: XXXXXxxxxx 班 级: 2012XXXXX 班内序号: XXX 学 号: XXxx21XXX 日 期: 2014年5月 课题概述 1.1课题目标和主要内容本课题了实现一个基于API和MFC的简易绘图软件。此简易绘图软件,满足用户进行绘图时的基本需求,主要功能包括绘制会动的时钟,绘制三角形(API实现),绘制线条(MFC实现)。应具有良好的界面、必要的交互信息和简易的菜单进行操作。在程序的设计与实现中,系统开发平台为Windows7,主要工具为Visual Studio 2012。 1.2系统的主要功能 主要功能与说明:DROW1(API):会动的时钟的绘制:模拟一个真实的表盘,绘制图形,显示实际的时间。绘制简单的三角形;MFC:1)图形的绘制:线形绘图函数:Lineto:绘制直线Polyline:绘制折线Arc:绘制圆弧线Polybezir:绘制弯曲线区域绘图函数Rectant:绘制矩形Roundrect:绘制圆边矩形Ellips:绘制椭圆Pie:绘制扇形2)自由绘图:拖动鼠标可以自由绘制曲线,可以通过一个对话框选择所需线形线宽等。3)清空功能:全部清空:可以清空整个屏幕内容。2. 系统设计 2.1 系统总体框架 API: 简易画图板时钟三角形退出 MFC: 2.2 系统详细设计 2.2.1 模块划分图及描述绘图函数模块:通过各种系统自带的绘图函数,直接调用绘图。设置他们的位置,并添加到菜单项,使点击菜单项则可出现相应图形。Lineto:绘制直线Polyline:绘制折线Arc:绘制圆弧线Polybezir:绘制弯曲线Rectant:绘制矩形Roundrect:绘制圆边矩形Ellips:绘制椭圆Pie:绘制扇形自由绘图模块:按下鼠标左键,初始化起始位置,在选定自由绘图模式的情况下,拖动鼠标的同时,获取鼠标当前位置为终点位置,调用MoveTo和LineTo函数连接两点。连线完成后,将上一条直线的终点作为下一次连线的起始位置。反复进行该操作,直到鼠标左键不再处于按下状态。当连线的频率足够快时,所画出的图形能近似于曲线,就能实现自由绘图。更改画笔线宽、线形:设置一个对话框,分别定义两个成员变量储存用户选择的现款和线形,再用一个整形变量,在每次绘图前,声明一个CPen类型的画笔对象,并用储存的颜色和线宽对该对象进行初始化,随后把该画笔选入设备描述表中。窗口图形模块:通过在资源视图中设置菜单栏,将菜单栏设置成绘图函数、设置、清空(等板块;并默认为自由线画图,分别定关联函数和变量来记录做出的选择。2.2.2 类关系图及描述本程序主要在视图类中进行操作,原有类主要是CDrawView类有更改,其他类都由系统生成,未做很大更改。另外,新定义了一个Csettingdlg类来存储线宽和线形的设置。名称属性备注m_ptOrgin成员变量记录画图起点m_ptEnd成员变量记录画图终点m_color成员变量记录画笔和画刷颜色m_width成员变量记录画笔线宽m_SolidBrush成员变量判断是否选择实心画刷m_pBrush成员变量存储画图时使用的画刷LDown成员变量判断鼠标左键是否按下OnLine( )成员函数绘图函数中选择“直线”选项响应函数OnRectangle( )成员函数绘图函数中选择“矩形”选项响应函数OnEllipse( )成员函数绘图函数中选择“椭圆”选项响应函数Onpie( )成员函数绘图函数中选择“扇形”选项响应函数OnLButtonDown( )成员函数绘图模式中鼠标左键按下响应函数OnLButtonUp( )成员函数鼠标左键弹起响应函数Onquanbuqingkong( )成员函数选择“清除屏幕”选项响应函数OnMouseMove( )成员函数鼠标移动响应函数Onxiantiao ( )成员函数储存选择的线条宽度和线条形状2.2.3程序流程图及描述2.3 关键算法分析 API:函数一://窗口函数LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){static int menuId=0;//静态变量int wmId, wmEvent;HDC hdc;PAINTSTRUCT ps;switch(message){case WM_CREATE: SetTimer(hwnd,1,1000,NULL); break;case WM_TIMER: InvalidateRect(hwnd,NULL,TRUE); break; case WM_COMMAND://处理菜单消息wmId = LOWORD(wParam);wmEvent = HIW
文档评论(0)