MDI mfcvc++如何在大型机内切换视图

MDI MFC VC++ how to switch views within mainframe

本文关键字:视图 大型机 mfcvc++ MDI      更新时间:2023-10-16

我正在制作MDI应用程序,并且没有使用拆分器,我的文档有多个视图。现在我想从应用程序的大型机更改文档视图…

这里是我在做什么,我有outlook栏与一些菜单按钮,当用户将点击这些按钮,然后我将显示CFormView内的文档作为一个孩子,而不是弹出对话框。现在我不知道如何从MainFrame更改视图,其中菜单处理程序已经编写。

如果你知道任何…有超过5个不同的视图,其中4个是CFormView。

MainFrame ->MenuhandlerFunction(菜单点击)

MenuHandlerFunction ->使用基于CFormView的新视图打开新文档

(总共5个不同的CFormView和它们在MainFrame内的处理程序)

我不太确定如何选择要显示的视图,但是这里有一些代码可以遍历MainFrame中当前文档的视图:

EDIT:修改MDI代码

CMDIChildWnd *pChild = (CMDIChildWnd*)GetActiveFrame();  // EDIT: added line
CDocument *pDoc = pChild->GetActiveDocument();           // EDIT: added pChild->
POSITION pos = pDoc->GetFirstViewPosition();
while (pos != NULL)
{   CView* pView = GetNextView(pos);
    // if this is the view you want to activate
    //     pChild->SetActiveView(pView);                 // EDIT: added pChild->
}