C ++ MFC MDI, как изменить отображение классов на основе активного документа

Я работаю над приложением MDI, у которого есть объектный браузер (CClassView), который должен изменить то, что он отображает в зависимости от того, какой «документ» активен.

PS: ни один из моих поисков не сработал.

0

Решение

Это не то, что я ожидал, но вот возможное решение:

http://forums.codeguru.com/showthread.php?473808-MFC-Doc-View-How-to-get-the-active-document-anywhere-in-my-application

В: Как получить активный документ в любом месте моего приложения?

A: Есть несколько способов, один из них — сначала получить активный кадр.
затем вызовите CFrameWnd :: GetActiveDocument. … В приложениях MDI мы
должны дополнительно получить активный дочерний кадр MDI.

CDocument* GetMDIActiveDocument()
{
CDocument* pDoc = NULL;

CWnd* pWndMain = AfxGetMainWnd();
ASSERT(pWndMain);
ASSERT(pWndMain->IsKindOf(RUNTIME_CLASS(CMDIFrameWnd))); // Not an MDI app.

CFrameWnd* pFrame = ((CMDIFrameWnd*)pWndMain)->MDIGetActive();
if(NULL != pFrame)
{
pDoc = pFrame->GetActiveDocument(); // get the active document
}
return pDoc;
}

Этот пример кода может предложить другие (возможно, даже лучшие) альтернативы:

http://msdn.microsoft.com/en-us/library/cstcs513%28v=vs.90%29.aspx

0

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

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

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