MFC MDI GetActiveView 总是NULL
为什么我在VC++多文档MDI编程中调用GetActiveView得到的总是NULL?我是在我自己的CPP里调用的...
为什么我在VC++多文档MDI编程中调用GetActiveView得到的总是NULL?我是在我自己的CPP里调用的
展开
1个回答
展开全部
你要先看获取的子框架窗口指针是否为NULL,注意MDI中要使用函数MDIGetActive获取子框架。
AfxGetMainWnd()->MDIGetActive()->GetActiveView()
这是全局获取MDI当前视图窗口的标准方法(需要根据你的类名做强制转换),如果最后获取为NULL,那么把语句拆开,一个一个看,哪个获取为NULL。
另外,检查一下,是不是根本就没有当前激活子窗口视图,这个也是可能的原因。
AfxGetMainWnd()->MDIGetActive()->GetActiveView()
这是全局获取MDI当前视图窗口的标准方法(需要根据你的类名做强制转换),如果最后获取为NULL,那么把语句拆开,一个一个看,哪个获取为NULL。
另外,检查一下,是不是根本就没有当前激活子窗口视图,这个也是可能的原因。
更多追问追答
追问
子框架不是空,我就是不知道有没有激活视图,怎么样才算激活视图啊
追答
如果有Active的子窗口,激活视图也肯定是有的。
建议你,先分析一下具体是哪里的问题吧,如果是线程,先不在线程里面获取,先在CMainFrame或者App的某个菜单响应函数中进行测试,这样能看出是线程造成的还是获取函数使用的问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询