复杂的Document/View程序

如果说要做一个多视图的程序,Document/View之间的通讯就变的稍微复杂一些。这时,就要用到UpdateAllViews和OnUpdate函数了。建立多视图程序的主要步骤如下:
1、定义CDocument派生类的成员变量,用于存储数据。
2、在CView派生类中重载OnUpdate函数,确保View中显示的内容与Document中的数据相同。
3、根据需要,组织Message Map。
4、在CView派生类的Command Message Handlers中根据需要更新Document的数据(用CView::GetDocument()函数),在最后要调用CDocument::UpdateAllViews函数以更新其他的View。
5、在CDocument派生类的Command Message Handlers中根据需要更新Document的数据,在最后同样要调用CDocument::UpdateAllViews函数以更新所有的View。
 
在通讯中将发生一下事件:
Application starts                                 CMyDocument object constructed
                                                              CMyView object constructed
                                                              Other view objects constructed
                                                              View windows created
                                                              CMyView::OnCreate called (if mapped)
                                                              CDocument::OnNewDocument called
                                                              CView::OnInitialUpdate called
                                                              Calls CMyView::OnUpdate
                                                              Initializes the view
 
User executes view command             CMyView functions update CMyDocument data members
                                                              Call CDocument::UpdateAllViews
                                                              Other views' OnUpdate functions called
                                                           
User executes document command    CMyDocument functions update data members
                                                              Call CDocument::UpdateAllViews
                                                              CMyView::OnUpdate called
                                                              Other views' OnUpdate functions called
                        
User exits application                           View objects destroyed
                                                               CMyDocument object destroyed
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值