MDI MFC VC ++, как переключать представления в мейнфрейме

Я делаю приложение MDI, и без использования сплиттера мой документ имеет несколько представлений. Теперь я хочу изменить вид документа из MainFrame приложения …

вот что я делаю, у меня есть outlookbar с некоторыми кнопками меню, когда пользователь нажимает эти кнопки, я показываю CFormView внутри документа как дочерний элемент вместо всплывающего диалога. Теперь я не знаю, как изменить представление от MainFrame, где был написан обработчик меню.

Пожалуйста, предложите любой совет, если вы знаете … Есть более 5 различных видов, и 4 из них являются CFormView.

MainFrame -> MenuhandlerFunction (Клики по меню)

MenuHandlerFunction -> Открыть новый документ с новым представлением на основе CFormView

(всего 5 различных CFormView и их обработчики внутри MainFrame Written)

0

Решение

Я не очень уверен, как вы выбираете, какое представление отображать, но вот некоторый код для итерации по представлениям текущего документа в вашем 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->
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]