大家好,现在有个问题问下。现在有两个视图,关联在同一个文档上。(多视图单文档)现在视图A有一个编辑框A,视图B也有一编辑框B,编辑框A和编辑框B的数据都是保存在文档里面,保存的位置都是相同的。我希望两个视图都存在的时候,编辑框A的数据更新的时候编辑框B的数据也同时更新。我现在的做法是直接在编辑框失去焦点的时候GetDocument()->UpdateAllViews(NULL);这样的话两个视图的数据都能同时的更新过来显示出来。。但是如果视图多的话,更新起来的速度会很慢,我想问下有没有其他的办法,当编辑框A更新数据的时候,同时编辑框B的数据也更新显示。不用UpdateAllviews(NULL).还有其他的办法吗?或者是视图A的数据更新的时候,同时视图B的数据也更新显示。

解决方案 »

  1.   

    方法就是UpdateAllviews,你可以增加一些标志来控制只更新有关的部分。
      

  2.   

    2楼的可以举个例子吗?谢谢。void UpdateAllViews( CView* pSender, LPARAM lHint = 0L, CObject* pHint = NULL );里面的pSender指的是更新的视图,我在里面加进去更新的视图的时候没数据还是没同时更新过来。 
      

  3.   

    视图类的OnUpdate函数中根据传过来的参数做一些判断,只处理需要更新的部分。