- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MFC实验六文档视图和单文档界面
实验六文档/视图和单文档界面创建一个单文档界面应用程序,项目名设置为wx03.在文档类CWx03Doc中添加数据成员用于保存应用程序的数据。二维数组m_clrGrid用于保存每个方格的颜色,数据成员m_clrCurrentColor用于保存方格被单击时赋给方格的颜色。在文档类CWx03Doc的OnNewDocument函数中对数据成员进行初始化:向类wx03Doc添加三个成员函数,如下:函数定义如下:GetCurrentColor、GetSquare和SetSquare作为文档和视图之间的桥梁,视图对象通过它们可以访问文档的保护成员。编辑CWx03View的OnDraw函数,在视图窗口中绘制网格,并根据文档类中保存的方格颜色来设置方格的颜色。在视图类CWx03View中添加消息处理函数WM_LBUTTONDOWN的处理函数:利用菜单编辑器编辑个添加如下菜单,各菜单的属性设置如下表:ID标题(Caption)ID_EDIT_CLEARALL清除所有方格ID_COLOR_RED红色(R)ID_COLOR_GREEN绿色(G)ID_COLOR_BLUE蓝色(B)ID_COLOR_CUSTOM自定义...在派生文本类中重载DeleteContents函数,用于清除所有方格内的颜色。为添加的菜单项添加命令消息处理函数和用户界面更新命令处理函数。由于这些函数都是针对文档数据的操作,因此将这些菜单命令的消息处理函数添加在文档类中。编译、链接和运行程序,结果如下:添加序列化功能,将各个方格的颜色以及当前颜色存入文件,并允许从文件中读取。编写一个SDI程序,可以用鼠标在视图窗口中划线,并能将所画的线条保存。定义一个新类Cline。编辑类Cline,在其中添加相应的数据成员和成员函数。在文档类中添加保存线段的数组。在头文件wx03Doc.h中添加如下的数据成员和成员函数,并包含定义类Cline的头文件和使用MFC模板类时需要的头文件:在文档类的实现文件中编写添加的成员函数:当在视图窗口中按下鼠标右键时开始画线,鼠标右键抬起时完成线段的绘制,在鼠标移动的过程中画橡皮筋线。因此需要记录划线的起点和终点并设置画橡皮筋线的跟踪标志。画橡皮筋线时,需要将原来的线条删除,重新画一条从起点到当前鼠标指针坐标的线条,最简单的办法是使用R2_NOT绘图模式反转线条。在视图类CWx03View中添加如下的数据成员和成员函数:在视图类CWx03View的实现文件中编写函数InvertLine:视图类中添加鼠标消息WM_RBUTTONDOWN、WM_MOUSEMOVE和WM_RBUTTONUP的处理函数并添加如下代码:为了在改变窗口大小或最小化后重新打开窗口,或在被覆盖后重新显示时保留原有的图形,必须在OnDraw函数中重新绘制文档中线段数组中的线段。在定义类Cline时实现了类的序列化,但只是一条线段的序列化,还必须保存文档类的数据。编写文档类wx03Doc的Serialize函数,完成对线段数组的序列化。在文档类中重载DeleteContents函数:编译、链接和运行程序,用鼠标在视图窗口中画线并测试保存、新建、打开等命令,运行结果如图所示:为wx03增加滚动视图功能。执行Edit-Replace菜单命令,将视图类CWx03View头文件中所有Cview替换成CScrollView,同样将实现文件中的所有Cview替换成CScrollView。在视图类CWx03View中重载虚函数OnInitialUpdate,编辑该函数。修改鼠标消息处理函数,进行设备坐标与逻辑坐标之间的转换。在文档类中保存的线段坐标是逻辑坐标,当窗口改变大小或滚动后,调用OnDraw重绘的线段使用的是逻辑坐标。在视图中画椭圆。在视图类wx03View中增加两个数据成员,分别保存椭圆的外接矩形和颜色,同时在构造函数中进行初始化。编辑视图类的OnDraw函数,绘制椭圆:在视图类中添加WM_LBUTTONDBLCLK消息处理函数,当在椭圆内双击时,改变椭圆的颜色:编译、链接和运行程序如下:
您可能关注的文档
最近下载
- 我爱这土地公开课一等奖市赛课一等奖课件.pptx VIP
- 2025社区工作者招聘考试综合基础知识试题(附答案).docx VIP
- 基于Javaweb的图书管理系统的设计与实现.docx VIP
- 医院危重孕产妇新生儿急救应急演练脚本.docx VIP
- 小学科学新教科版二年级上册1.6.“小房子”展示会教案(2025秋版).doc VIP
- 网络安全等级保护-重大风险隐患项描述实践指南(【2025】测评报告新增).docx VIP
- 社区工作者综合能力考试基础知识试题及答案.docx VIP
- 2025年秋新人教版数学三年级上册整册教案.pdf
- 抗菌药物临床应用分级管理目录(2023年版).doc VIP
- 急性左心衰护理课件ppt.pptx
文档评论(0)