第一范文网 - 专业文章范例文档资料分享平台

MFC实验六 文档视图和单文档界面

来源:用户分享 时间:2025/7/11 7:56:16 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验六文档/视图和单文档界面

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. 编辑视图类的OnDraw函数,绘制椭圆:

26. 在视图类中添加WM_LBUTTONDBLCLK消息处理函数,当在椭圆内双击时,改变椭圆

的颜色:

27. 编译、链接和运行程序如下:

搜索更多关于: MFC实验六 文档视图和单文档界面 的文档
MFC实验六 文档视图和单文档界面.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2mx5z9hjgl1qw0a8dn64_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top