MFC中的 Document / View 结构的使用 <转载+自己总结,MFC中的MVC>

来源:互联网 发布:淘宝上的艾滋试纸 编辑:程序博客网 时间:2024/04/30 03:17

1、某Document派生类(AD) 和 某 View派生类(BV) 的绑定 ! <这里是完成了类与类的绑定,以便 CDocManager类和CDocTemplate类管理,但是AD类的对象和BV类的对象是不是一一对应绑定的呢?>  <一个文档对象可以和多个视类对象关联,而一个视类对象只能和一个文档对像相关联>

 

2、将数据存入Document派生类 中,作为Document派生类的数据成员。然后重载本类的 Serialize函数,完成本类对象的读写磁盘操作

 

3、使用BV类的某个对象显示AD类的某个对象。      <这两个类的对象间的绑定是如何操作的呢?>

 

4、当某个AD类的某对象数据发生改变了后,调用 CDocument::SetModifiedFlag  函数 ,显示本AD类对象的数据发生了改变。   <这里仅仅是一个提示作用吗?>。在AD类中将BV类声明为友元类,这样BV类就可以访问AD类的私有数据成员

 

5、当某AD类对象数据发生改变后,通常在调用CDocument::SetModifiedFlag 函数后,会调用 CDocument::UpdateAllViews 函数,这个函数会促使与本文档绑定的VIEW窗口调用CView::OnUpdate  函数,并完成函数间传参。

 

6、CView::OnUpdate  函数。,被CDocument::UpdateAllViews 和 CView::OnInitialUpdate  这两个函数触发。 让VIEW窗口完成更新。CView::OnUpdate 被这两个函数触发的途径不是通过消息,所以效率相对消息触发高一些。当然,也可以通过Invalidate来触发,这个效率低 

 

7、使用CView::GetDocument 函数获取与本VIEW类绑定的document对象的指针。

 

 

 


 

 

原创粉丝点击