读书人

MDI程序怎么根据已打开的视图标题获

发布时间: 2012-01-13 22:43:30 作者: rapoo

MDI程序,如何根据已打开的视图标题获得该视图!遍历已打开的视图
我想实现的功能描述如下:
一个多文档工程,在主框架的工具栏有8个按钮,每个按钮点击后就可以打开一个视图,再次点击该按钮,相对应的视图关闭而不是新开一个相同的视图,8个按钮对应的视图类型都是CListView型的。

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

我现在只能做到打开一个视图后,通过视图标题名字获得该视图指针,然后对该视图进行操作。
再打开多视图的情况下我就不知道怎样能获得相应的视图了!请指教下

[解决办法]
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);
//这里就是你想要的视图指针


}

}

}

读书人网 >VC/MFC

热点推荐