MFC 多文档程序,如何获取当前活动的文档指针
CFrameWnd*pmain=(CFrameWnd)AfxGetMainWnd();CMyorctest*poc=(CMyorctest)pmain->GetActiv...
CFrameWnd* pmain=(CFrameWnd)AfxGetMainWnd();
CMyorctest* poc=(CMyorctest)pmain->GetActiveDocument()
这两句是写在新建dialog界面的初始化代码中,但是跟踪下来,发现poc指针的值为空。 展开
CMyorctest* poc=(CMyorctest)pmain->GetActiveDocument()
这两句是写在新建dialog界面的初始化代码中,但是跟踪下来,发现poc指针的值为空。 展开
2个回答
展开全部
代码有误。
CMyorctest* poc=(CMyorctest *)(AfxGetMainWnd()->GetActiveDocument());
CMyorctest* poc=(CMyorctest *)(AfxGetMainWnd()->GetActiveDocument());
追问
刚刚试了下,这样的话,根本就跳不出()->GetActiveDocument()); 函数。。
感觉上像是没有活动的视图。
追答
呵呵,疏忽了,是多文档。
首先看你的对话框,如果是模态的,那么这个用法不可取,因为对话框很可能会导致ActiveView失去焦点,这个你试试看。
如果在view或者doc类创建的模态对话框,建议在DoModal之前,传递指针或者数值过去;
如果在主框架,还是建议DoModal之前获取,获取方式如下:(前面没有获取子框架)
CMyorctest* poc=(CMyorctest *)(AfxGetMainWnd()->MDIGetActive()->GetActiveDocument());
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询