Как получить текущий документ в приложении 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();
}
|