Как получить текущий документ в приложении MDI
|
Чтобы получить указатель на текущий активный документ из приложения MDI, необходимо воспользоваться функцией CMDIFrameWnd::MDIGetActive(). MDIGetActive() возвращает указатель на активный CMDIChildWnd. Этот CMDIChildWnd * позволяет получить правильный указатель на текущий активный документ через GetActiveDocument().
Пример, приведённый ниже, показывает, как получить указатель на текущий активный документ из любого места приложения MDI. Пример кода void Some_Function() { CMyDoc *pActiveDoc; // CMyDoc наследован от CDocument CMyFrame *pActiveFrame; // CMyFrame наследован от CMDIChildWnd pActiveFrame =(CMyFrame*) ((CMainFrame*)(AfxGetApp()-<m_pMainWnd))-<MDIGetActive(); // версии MFC 2.5 и выше содержат AfxGetMainWnd(), которая // которую можно использовать для получения доступа к основному // окну вместо "AfxGetApp()->m_pMainWnd pActiveDoc = (CMyDoc*)pActiveFrame->GetActiveDocument(); }
|