MFC 文档/视图模式之如何获取文档内数据

来源:互联网 发布:atom x64 windows.zip 编辑:程序博客网 时间:2024/05/16 06:47

        一般基于视图/文档的程序都是把自己的数据在文档类里面保存,文档类可以方便地实现打印功能和文件的串行化,在视图里面对文档类里面的数据进行操作和显示。在视图类里面直接有一个GetDocument()方法,所以取得文档类的指针很方便。  
       
        例子很容易,比如在文档类里面定义一个Public类型的变量CString   m_str;  然后在视图里面就可以这样来访问该变量:  
 
  CxxDoc   *pDoc   =   GetDocument();  
  AfxMessageBox(pDoc->m_str); 

GetDocument()方法只能在CView及其派生类中调用,若想在其他类中调用,可声明引用主框架指针或者自定义一个GetDocument()函数。

例如:

//取得框架中CMyTreeView部分的指针

 CMainFrame *pMain        = (CMainFrame *)AfxGetMainWnd(); 
 CMyTreeView  *pMyTree    = (CMyTreeView*)pMain->m_wndSplitter1.GetPane(0,0);

//调用CMyTreeView的GetDocument函数初始化文档操作指针

 CMyDoc *pDoc = (CMyDoc*)((*pMyTree).GetDocument());

 

原创粉丝点击