![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
在MFC编程的时候,我想在自己定义的类的成员函数中获取view的指针,怎么获取
在MFC编程的时候,我想在自己定义的类的成员函数中获取view的指针,比如说我自己定义的类是CDot,view为CHuaView,我用的是((CFrameWnd*)(Af...
在MFC编程的时候,我想在自己定义的类的成员函数中获取view的指针,比如说我自己定义的类是CDot,view为CHuaView,我用的是
((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView()
但获的是CView的指针,无法获取CHuaView的指针,所以不能获取CHuaView的成员变量,我这样解释对吗?应该怎么获取CHuaView的成员变量呢? 展开
((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView()
但获的是CView的指针,无法获取CHuaView的指针,所以不能获取CHuaView的成员变量,我这样解释对吗?应该怎么获取CHuaView的成员变量呢? 展开
1个回答
展开全部
#include "HuaView.h"
然后强制转换
CHuaView* pView;
pView=(CHuaView *)((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
然后强制转换
CHuaView* pView;
pView=(CHuaView *)((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
更多追问追答
追问
还是无法调用它的成员变量啊、、、
将父类CView强制转化为子类CHuaView貌似是会把成员变量给丢掉的吧~~~
再麻烦您一下,view里GetDocument()老报错,怎么改也改不了,这是啥回事?
追答
不会丢掉的。 代码生效的前提是你的活动视图得确实是 CHuaView ,你不能说新建一个 CHuaView 类就用,那不行的,得把系统默认生成的那个 View 类用 CHuaView 替换掉才行。
GetDocument() 报错你看看这个函数返回的是不是存在,和 NULL 比对一下,如果 Document 的对象还没生成,你就 GetDocument 然后调用 Document 的方法肯定会出错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询