MFC中普通类如何获取view类的指针?

来源:百度知道 编辑:UC知道 时间:2024/09/25 16:29:32
在普通类(Generic class)中怎么得到view类的指针?我试过这样:
CMainFrame *p=(CMainFrame*)AfxGetMainWnd();
CView *pv=p->GetActiveView();

但是结果pv是空值.

按照你的用法应该就是可以的!

是不是在这样用时,View还没有创建完成啊,所以pv才是空的。

楼上的分析在理,楼主理一下函数调用顺序, 别是什么PreCreateWindow或是CXXXApp,CXXXFrame的构造函数,InitInstance里,模板主窗口都没建完就准备操纵这个CView了

将视类的指针保存在一个全局变量里,在普通类中加个同型指针成员变量,然后在比如按钮啊什么的控件中实例化普通类后就可以调用。

CMainFrame *m_pfm = (CMainFrame*)AfxGetApp()->m_pMainWnd;
...*m_pView = (...*)m_pfm->GetActiveView();

少一句:AfxGetApp()
CMainFrame *p=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CView *pv = (CView*)p->GetActiveView();

>>>>>>>>>>>>>>>>>>>ok