如何获得当前程序的视图,文档指针
首先需要在头文件中,包含CMainFrm.h
方法1:
1)获取当前框架的指针
CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
2)之后可以获取当前文档和视图的指针
获取视图指针方法:
((CMyView *)(pFrame->GetActiveView()))
获取文档指针的方法:
((CMyDoc *)(pFrame->GetActiveDocument()))
方法2:
1)通过全局函数AfxGetApp()得到应用程序的指针.
2)用这个应用程序的指针-> m_pMainWnd得到MainFrame的指针.
3)再用MainFrame的指针-> GetActiveView()得到当前视图的指针.
如上两种方法,区别在于如何获得MainFrame的指针,而后处理是一样的。
1,如何在视图类中获取主窗口指针
主窗口的指针保存在CWinThread::m_pMainWnd中(应用程序类的Initlnstance函数有用到),可以调用 AfxGetMainWnd获取,也可以用视图类继承的函数GetParent()获取。另外,如果要获取当前视图类对象的指针(比如要在当前视图手动添 加控件)要使用this。
2、如何在主框架类中获得视图类指针
单文档(SDI):
CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();
CMyDoc* pDoc = (CMyDoc*)pMainFrame->GetActiveDocument();
CMyView* pView = (CMyView*)pMainFrame->GetActiveView();