单文档工程中,原视图为CLeftView,通过切分窗体得到另外一个视图类CRightView,请问在CLeftView的构造函数中能否得到文档中的数据?还是只能通过OnInitialUpdate来获得文档类中的数据??

解决方案 »

  1.   

    那我在文档类中的数据非得通过OnInitialUpdate传递给视类了??
      

  2.   

    你给视图类加个获得文档类对象指针的函数不就得了,随便什么时候都可以很方便的操作。在类中加函数声明
    CYourDoc* GetDocument();#include "mainFrm.h"
    CYourDoc* CYourView::GetDocument()
    {
    CDocument* pDoc=((CMainFrame*)::AfxGetMainWnd())->GetActiveDocument();
    if(pDoc==NULL) return NULL;
    else return (CYourDoc*) pDoc;
    }应用
    CYourDoc* pDoc=GetDocument();
    pDoc->...
    ...=pDoc->...
      

  3.   

    当然,如果工程中有多个文档类,最好还是加上这句
    ASSERT(pDoc->IsKindOf(RUNTIME_CLASS(CYourDoc)));
      

  4.   

    没试过,你把GetDocument()函数中获得文档类指针的办法加到视图类构造函数中去试试吧,也许可以的。
      

  5.   

        在构造函数中是不能使用的,另外在OnInitialUpdate业传递不了
         因为单文档的View先于Doc形成
      

  6.   

     刚才说错了,纠正一下
     在OnInitialUpdate可以获得文档类中的数据 CXXXDoc *doc = (CXXXDoc *)GetDocument(); m_xx = ddoc->m_xx;  
      

  7.   

     并不是非得在OnInitialUpdate中获得,在需要用到的时候获得就行