MFC 多文档程序,如何获取当前活动的文档指针

CFrameWnd*pmain=(CFrameWnd)AfxGetMainWnd();CMyorctest*poc=(CMyorctest)pmain->GetActiv... CFrameWnd* pmain=(CFrameWnd)AfxGetMainWnd();
CMyorctest* poc=(CMyorctest)pmain->GetActiveDocument()
这两句是写在新建dialog界面的初始化代码中,但是跟踪下来,发现poc指针的值为空。
展开
 我来答
bhtzu
2013-02-06 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4103万
展开全部
代码有误。
CMyorctest* poc=(CMyorctest *)(AfxGetMainWnd()->GetActiveDocument());
追问
刚刚试了下,这样的话,根本就跳不出()->GetActiveDocument()); 函数。。
感觉上像是没有活动的视图。
追答
呵呵,疏忽了,是多文档。
首先看你的对话框,如果是模态的,那么这个用法不可取,因为对话框很可能会导致ActiveView失去焦点,这个你试试看。
如果在view或者doc类创建的模态对话框,建议在DoModal之前,传递指针或者数值过去;
如果在主框架,还是建议DoModal之前获取,获取方式如下:(前面没有获取子框架)
CMyorctest* poc=(CMyorctest *)(AfxGetMainWnd()->MDIGetActive()->GetActiveDocument());
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小陆仁
2013-02-06 · TA获得超过162个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:166万
展开全部
SetActiveView(pNewActiveView);

请先设置个默认 的 当前活动页
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式