MDI程序,如何根据已打开的视图标题获得该视图!遍历已打开的视图

猞猁狲 2008-05-24 12:51:29
我想实现的功能描述如下:
一个多文档工程,在主框架的工具栏有8个按钮,每个按钮点击后就可以打开一个视图,再次点击该按钮,相对应的视图关闭而不是新开一个相同的视图,8个按钮对应的视图类型都是CListView型的。

另一种情况:
假定点击了3个按钮为a按钮、b按钮、c按钮,打开了和3个按钮相应的a、b、c视图,由于c视图是最后一个打开的,所以c视图是当前的激活视图。要求:现在点击a或b按钮,他们相应的视图变为当前激活视图

我现在只能做到打开一个视图后,通过视图标题名字获得该视图指针,然后对该视图进行操作。
再打开多视图的情况下我就不知道怎样能获得相应的视图了!请指教下
...全文
119 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
猞猁狲 2008-05-25
  • 打赏
  • 举报
回复
多谢,问题解决,结贴了
wflishh 2008-05-24
  • 打赏
  • 举报
回复
其实我觉得你都是一个视图的情况下。定义指针数据。分别保存相相应的指针。当点时,查一下指针是否存在,如果存在就关闭并设置成NULL。反之则建立一个View.
wflishh 2008-05-24
  • 打赏
  • 举报
回复
POSITION position_template=AfxGetApp().GetFirstDocTemplatePosition();
POSITION position_doc;
POSITION position_view;
while (NULL!=position_template)
{
CDocTemplate *p_doc_template=theApp.GetNextDocTemplate(position_template);
position_doc=p_doc_template->GetFirstDocPosition();
while (NULL!=position_doc)
{
CDocument *p_docment=p_doc_template->GetNextDoc(position_doc);
position_view=p_docment->GetFirstViewPosition();
while (NULL!=position_view)
{
CView *p_view=p_docment->GetNextView(position_view);
//这里就是你想要的视图指针


}

}

}
猞猁狲 2008-05-24
  • 打赏
  • 举报
回复
没有人会吗?还是我说的不够清楚??分不够可以加

15,979

社区成员

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

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