总结VC中VIEW类与DOC类

来源:互联网 发布:qq最新软件版本 编辑:程序博客网 时间:2024/05/16 12:55
 

刚开始学习MFC,总是搞不清变量以及消息响应函数等究竟应该放在什么地方,感觉放在哪里都是一样的。就百度了一下,汇报结果如下:

首先是来自于百度知道的:http://zhidao.baidu.com/question/55308058.html

回答一:

document/view模式,是为了在逻辑上,让数据和显示分开。

一般在document里,定义document类的成员变量,来存数据,并用View来显示。

在document里,当成员变量的数据改变时,你可以用UpdateAllViews()来通知视图更新。

在View里,用GetDocument来获取与之对应document的指针,进而可以访问document的成员变量,从而进行显示Document/View仅仅是MFC为你提供的一种很好的支持而已

这里提到了两个函数UpdateAllViews()和GetDocument(),是用来建立两个类之间的联系的,很有用!

回答二:顾名思义,View类是用来做前台显示,Doc类负责数据的处理,在View类进行绘制或者显示的时候是需要数据的,那么这些数据需要一个管理者--他就是Doc类。

回答三:一般先写文档内的代码。要显示的绘制的写再view里。

又搜到一个在CSDN中的提问,http://topic.csdn.net/t/20030321/20/1561381.html

有下面一个回答:

Document/View结构,在单文档情况下,表现的优势不太明显,可是在文件的保存读取,和多种显示的话,就具有很多的好处。将显示和数据分离开来。

搜到一篇短文章:MVC结构模式与MFC Doc/View结构
文章出处:DIY部落(
http://www.diybl.com/course/3_program/vc/vc_js/2007114/83639.html)

在MFC中实现经典的MVC结构,如下图所示:。。。。。。。


注意:

1、Document和View之间的绑定:View绑定到Document。
2、Frame作为Controller时,由于可以接收到输入消息,比较适合充当控制器。但是,由于视图和文档绑定,所以在切换视图时需要将视图和文档分离开,然后再进行切换。
3、View作为Contrller时,由于该视图和文档是绑定的,所以,可以通过该视图将其他视图与文档关联起来,其他视图并不直接和文档绑定。因此,可以通过隐藏和显示视图来实现不同视图之间的切换。
4、MFC的Doc/View结构本质上就是MVC结构,是MVC结构的一种实现,但是对MVC结构进行了简化。

先这么多,以后再补充……

地址:http://hi.baidu.com/abaostudy/blog/item/735e01d62356220ba18bb7e1.html