MFC实验六 文档视图和单文档界面.docx_第1页
MFC实验六 文档视图和单文档界面.docx_第2页
MFC实验六 文档视图和单文档界面.docx_第3页
MFC实验六 文档视图和单文档界面.docx_第4页
MFC实验六 文档视图和单文档界面.docx_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验六 文档/视图和单文档界面1. 创建一个单文档界面应用程序,项目名设置为wx03.2. 在文档类CWx03Doc中添加数据成员用于保存应用程序的数据。二维数组m_clrGrid用于保存每个方格的颜色,数据成员m_clrCurrentColor用于保存方格被单击时赋给方格的颜色。3. 在文档类CWx03Doc的OnNewDocument函数中对数据成员进行初始化:4. 向类wx03Doc添加三个成员函数,如下:函数定义如下:GetCurrentColor、GetSquare和SetSquare作为文档和视图之间的桥梁,视图对象通过它们可以访问文档的保护成员。5. 编辑CWx03View的OnDraw函数,在视图窗口中绘制网格,并根据文档类中保存的方格颜色来设置方格的颜色。6. 在视图类CWx03View中添加消息处理函数WM_LBUTTONDOWN的处理函数:7. 利用菜单编辑器编辑个添加如下菜单,各菜单的属性设置如下表:ID标题(Caption)ID_EDIT_CLEARALL清除所有方格ID_COLOR_RED红色(&R)ID_COLOR_GREEN绿色(&G)ID_COLOR_BLUE蓝色(&B)ID_COLOR_CUSTOM自定义.8. 在派生文本类中重载DeleteContents函数,用于清除所有方格内的颜色。9. 为添加的菜单项添加命令消息处理函数和用户界面更新命令处理函数。由于这些函数都是针对文档数据的操作,因此将这些菜单命令的消息处理函数添加在文档类中。10. 编译、链接和运行程序,结果如下:11. 添加序列化功能,将各个方格的颜色以及当前颜色存入文件,并允许从文件中读取。12. 编写一个SDI程序,可以用鼠标在视图窗口中划线,并能将所画的线条保存。13. 定义一个新类Cline。14. 编辑类Cline,在其中添加相应的数据成员和成员函数。15. 在文档类中添加保存线段的数组。在头文件wx03Doc.h中添加如下的数据成员和成员函数,并包含定义类Cline的头文件和使用MFC模板类时需要的头文件:在文档类的实现文件中编写添加的成员函数:16. 当在视图窗口中按下鼠标右键时开始画线,鼠标右键抬起时完成线段的绘制,在鼠标移动的过程中画橡皮筋线。因此需要记录划线的起点和终点并设置画橡皮筋线的跟踪标志。画橡皮筋线时,需要将原来的线条删除,重新画一条从起点到当前鼠标指针坐标的线条,最简单的办法是使用R2_NOT绘图模式反转线条。在视图类CWx03View中添加如下的数据成员和成员函数:在视图类CWx03View的实现文件中编写函数InvertLine:视图类中添加鼠标消息WM_RBUTTONDOWN、WM_MOUSEMOVE和WM_RBUTTONUP的处理函数并添加如下代码:17. 为了在改变窗口大小或最小化后重新打开窗口,或在被覆盖后重新显示时保留原有的图形,必须在OnDraw函数中重新绘制文档中线段数组中的线段。18. 在定义类Cline时实现了类的序列化,但只是一条线段的序列化,还必须保存文档类的数据。编写文档类wx03Doc的Serialize函数,完成对线段数组的序列化。19. 在文档类中重载DeleteContents函数:20. 编译、链接和运行程序,用鼠标在视图窗口中画线并测试保存、新建、打开等命令,运行结果如图所示:21. 为wx03增加滚动视图功能。执行Edit-Replace菜单命令,将视图类CWx03View头文件中所有Cview替换成CScrollView,同样将实现文件中的所有Cview替换成CScrollView。22. 在视图类CWx03View中重载虚函数OnInitialUpdate,编辑该函数。23. 修改鼠标消息处理函数,进行设备坐标与逻辑坐标之间的转换。在文档类中保存的线段坐标是逻辑坐标,当窗口改变大小或滚动后,调用OnDraw重绘的线段使用的是逻辑坐标。24. 在视图中画椭圆。在视图类wx03View中增加两个数据成员,分别保存椭圆的外接矩形和颜色,同时在构造函数中进行初始化。25.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论