如何在document 里面取得view的指针,超级高手请务必留言!!

ocean69 2003-05-19 03:01:10
在xxdoc.cpp里做成以下函数:以取得象view 里面的GetDocument 函数的功能,
请问这样写会有什么潜在的缺陷么?
Cview *Cxxdoc::GetView(CRuntimeClass *pClass)
{
Cview* pview;
POSITION pos = GetFirstViewPosition();
while(pos!=NULL)
{
pview = GetNextView(pos);
if (!pview->IsKineOf(pClass));
break;
}
if (!pview->IsKineOf(pClass))
{
AfxMessageBox("Can Not Locate The VIew!");
}
}
...全文
43 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
samyoung 2003-05-20
  • 打赏
  • 举报
回复
在doc.cpp中这样就可以访问了

CTestiew* pView = (CTestView*)m_viewList.GetHead();
samyoung 2003-05-20
  • 打赏
  • 举报
回复
在这里这些view指针是放在一个list里面的,一般的list有什么操作,也可以在这里用

获得了view的指针,就可以对他作其他的操作了,没什么特殊的

gethead函数你都看到了,应该可以想到还可以getnext了吧,这样一个循环,就可以遍历整个view列表了。

当然了,你也许希望获得你需要的view指针,那么,你根据获得的view判断是否满足你的条件就是了,这个就不用我说了吧?
ocean69 2003-05-19
  • 打赏
  • 举报
回复
请问如何才能取得m_pViewList指针?
BinaryPoet 2003-05-19
  • 打赏
  • 举报
回复
任何doc都有一个m_pViewList指针(未公开),直接访问就行啊!
ocean69 2003-05-19
  • 打赏
  • 举报
回复
我的目的是
“象view 里面的GetDocument 函数的功能”
那样在Document里面去做一个GetView()
kingdomfzh 2003-05-19
  • 打赏
  • 举报
回复
要实现这个功能可以到msdn中去找,有篇文章好象是How to get your doucument/view from anywhere?有例程可以拷贝,可以直接用!
yajunmao 2003-05-19
  • 打赏
  • 举报
回复
if (!pview->IsKineOf(pClass))//这里如果pview == NULL会有问题
{
AfxMessageBox("Can Not Locate The VIew!");
return NULL;
}
还有,我感到奇怪,你的目的是“以取得象view 里面的GetDocument 函数的功能”
可是这个函数就在Document里,你干吗又去找呢?
ocean69 2003-05-19
  • 打赏
  • 举报
回复
对不起,漏了两行码:
Cview *Cxxdoc::GetView(CRuntimeClass *pClass)
{
Cview* pview;
POSITION pos = GetFirstViewPosition();
while(pos!=NULL)
{
pview = GetNextView(pos);
if (!pview->IsKineOf(pClass));
break;
}
if (!pview->IsKineOf(pClass))
{
AfxMessageBox("Can Not Locate The VIew!");
return NULL;
}
return pview;

}

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧