在Document类中清除所有数据后,为什么View没有同步更新画面??谁能总结一下什么动作出发OnDraw???

解决方案 »

  1.   

    调用UpdateAllViews更新所有视图。
      

  2.   

    UpdateAllViews()中的那个参数怎么设?
      

  3.   

    if your delet action ocuur in the document class ,
    you may call CDocument::UpdateAllViews();
    else your can call 
    CView::GetDocument()->UpdateAllViews(NULL);for more information ,your call back on msdn.
      

  4.   

    设成调用UpdateAllViews的View的指针,如果不是由View调用的,设为NULL。该参数指向的View将不会更新。
      

  5.   

    如何在Document类中获得指向当前View的pointer???
      

  6.   

    到底怎么回事?CFrameWnd类中有一个GetActiveView()可以返回当前View的指针,我的CMainFrame继承自CFrameWnd,于是我在CMyDocument类中的一个函数里调用:
    UpDateAllViews((CMyView*)CMainFrame::GetActiveView()),可是编译出错:
    illegal call of non-static member function
      

  7.   

    请问http上面哪里有msdn可以下载???
      

  8.   

    《深入浅出MFC》P406 P469 有详细说明和例子
      

  9.   

    我现在就拿着《深入浅出MFC》,书中只提到了View类可以通过GetDocument()相映的Document类对象指针,而书中并没有提到如何在Document类中与相映的View取得联系
      

  10.   

    我一般是这样处理的;
    [1]在CMyDoc中加入成员变量CMyView* m_pView;
    [2]在CMyView中重载GetDocument()函数 CMyDoc* CMyView::GetDocument(){return (CMyDoc*)GetDocument();}
    [3]在CMView中响应OnCreate消息,加入GetDocument()->m_pView=this;ok,已后在MyView中用GetDocument()得到CMyDoc.在CMyDoc中通过m_pView访问CMyView.
      

  11.   

    CMainFrame::GetActiveView()这种语法只能用在static成员函数函数上。
    用CDocument::GetFirstViewPos和CDocument::GetNextView可以枚举与该项doc关联的所有view.用下面的代码可以得到当前的active view:
    CFrameWnd* pMainFrame=(CFrameWnd*)AfxGetMainWnd();
    CFrameWnd* pActiveFrame=pMainFrame->GetActiveFrame();
    CDocument* pActiveDoc=pActiveFrame->GetActiveDocument();