小问题,获取视图指针。
如何让一个单文档单视图程序的主框架类获得该视图的指针? 问题点数:20、回复次数:6Top
1 楼wlrwx()回复于 2002-04-12 13:36:53 得分 0
全局变量!
把你的theApp对象在所有CPP都要包含的的头文件中extern一下,然后声明一个这个试图的指针在里面,在试图OnInitialUpdate的时候把指针弄过去就可以了Top
2 楼lyy_hill(对各位,小生是滔滔江水……)回复于 2002-04-12 13:38:48 得分 0
用GetActiveView()Top
3 楼opentuxedo(借哥哥的号来试试)回复于 2002-04-12 13:49:11 得分 0
m_viewlist.GetHead();Top
4 楼zz3075(紫雪)回复于 2002-04-12 13:49:45 得分 0
定义pView为全局变量:CYouClassView *pView;
然后:pView=(CYouClassView*)pParent;
不要忘了头文件里一定要包含CyouClassView.hTop
5 楼opentuxedo(借哥哥的号来试试)回复于 2002-04-12 13:51:56 得分 0
反正就一个视图,你干脆在VIEW建立完成后放个指针到MainFrame里Top
6 楼virtualife(虚拟人生)回复于 2002-04-12 13:59:17 得分 0
看来也是新手啊。现在关键的是要弄清楚CWinApp,CMainFrame, CChildFrame,CDocument,CView这几个应用程序框架类之间的联系了。建议看看《深入浅出MFC》。Top
7 楼MaiWang(MaiWang)回复于 2002-04-12 14:11:03 得分 20
在CWinApp类定义m_pView
在视图OnInitialUpdate();函数里
{
CVsViewerApp *pApp=(CVsViewerApp *)AfxGetApp();
pApp->m_pView=this;
}
这样在你的程序的任何地方都可调用视的指针
在主框架窗口也一样
CxxView *pView=(CxxView *)AfxGetApp()->m_pView;
就行,其实直接用就行
AfxGetApp()->m_pView就是视图指针
Top




