15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


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