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(CMatchDoc),
            RUNTIME_CLASS(CMatchFrame), // custom MDI child frame
            RUNTIME_CLASS(CElectricityMatchView));

      AddDocTemplate(m_pElectricityMatchDocTemplate);

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

      AddDocTemplate(m_pThermalMatchDocTemplate);
        ......
********************************************
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);
      m_pElectricityMatchView->SetFrame(pMainFrame);//pMainFrame);
      m_pElectricityMatchView->SetSimPeriod(pMainFrame->GetpSimPeriod());
      ***********************************
The function of GetView() in details:
            ********************
            CElectricityMatchView* CElectricityMatchView::GetView()
            {

              CMDIChildWnd * pChild =
                         ((CMDIFrameWnd*)(AfxGetApp()->m_pMainWnd))->MDIGetActive();
               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?
thanks!
junhongukAsked:
Who is Participating?
 
GranModCommented:
Closed, 300 points refunded.
GranMod
The Experts Exchange
Community Support Moderator of all Ages
0
 
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.

thanks.

0
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.