Я делаю приложение MDI, и без использования сплиттера мой документ имеет несколько представлений. Теперь я хочу изменить вид документа из MainFrame приложения …
вот что я делаю, у меня есть outlookbar с некоторыми кнопками меню, когда пользователь нажимает эти кнопки, я показываю CFormView внутри документа как дочерний элемент вместо всплывающего диалога. Теперь я не знаю, как изменить представление от MainFrame, где был написан обработчик меню.
Пожалуйста, предложите любой совет, если вы знаете … Есть более 5 различных видов, и 4 из них являются CFormView.
MainFrame -> MenuhandlerFunction (Клики по меню)
MenuHandlerFunction -> Открыть новый документ с новым представлением на основе CFormView
(всего 5 различных CFormView и их обработчики внутри MainFrame Written)
Я не очень уверен, как вы выбираете, какое представление отображать, но вот некоторый код для итерации по представлениям текущего документа в вашем MainFrame:
РЕДАКТИРОВАТЬ: модифицированный код для 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->
}
Других решений пока нет …