Any solution for the following problem

I want to add two views in the certain document in MDI application.
in the *App.cpp, I add the following codes to share the same doc.
      // create main MDI Frame window
      CMainFrame* pMainFrame = new CMainFrame;
      if (!pMainFrame->LoadFrame(IDR_MeritTYPE))
            return FALSE;

      m_pMainWnd = pMainFrame;

      m_pElectricityMatchDocTemplate = new CMultiDocTemplate(IDR_MERITMATCH,
            RUNTIME_CLASS(CMatchFrame), // custom MDI child frame


      m_pThermalMatchDocTemplate = new CMultiDocTemplate(IDR_MERITMATCH,
            RUNTIME_CLASS(CMatchFrame), // custom MDI child frame

when the program run until the following code:
      CDocument* pDoc = NULL;// m_pMatchDocTemplate->OpenDocumentFile(NULL,0);
      m_pElectricityMatchView = CElectricityMatchView::GetView();   //the pointer to the view is empty, why????

      ASSERT(m_pElectricityMatchView != NULL);
The function of GetView() in details:
            CElectricityMatchView* CElectricityMatchView::GetView()

              CMDIChildWnd * pChild =
               if ( !pChild )
              AfxMessageBox("pChild Error!");
                   return NULL;

               CView * pView = pChild->GetActiveView();

               if ( !pView )
              AfxMessageBox("pView Error!");
                  return NULL;

             // Fail if view is of wrong kind
             if ( ! pView->IsKindOf( RUNTIME_CLASS(CElectricityMatchView) ) )
              AfxMessageBox("pView->IsKindOf Error!");
                  return NULL;
              return (CElectricityMatchView*) pView;
I can't get the view of child window. why?
is anything wrong with the above code? any solution?
Who is Participating?
Closed, 300 points refunded.
The Experts Exchange
Community Support Moderator of all Ages
junhongukAuthor Commented:
I have already sovled the problem. There is something wrong with my code.

modified the specific code as follows:

    CDocument* pDoc = m_pMatchDocTemplate->OpenDocumentFile(NULL);
     m_pElectricityMatchView = CElectricityMatchView::GetView();  

It will get the pointer of the view.


Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.