最近用VC的多文档多视图框架(MDI)编程实现子窗口的静态分割,分割由程序的菜单控制,当用户单击了分割菜单按钮后,软件会关闭原子窗口,新建子窗口并将新子窗口分割,分割的一个窗口中要照样显示原图形,现在只能重新通过打开文件调入数据再绘图,这样不是很好。
    请问新打开的子窗口怎样把原窗口中的数据和图形原样获得并显示,我现在的代码如下,请高手看后指点!!void CChildFrame::OnSplitChildWnd() 
{
// TODO: Add your command handler code here
  CCreateContext pContext;
  pContext.m_pNewViewClass = RUNTIME_CLASS(CSeisImageView);
   pContext.m_pCurrentDoc =GetActiveDocument();
  ASSERT(pContext.m_pCurrentDoc!=NULL);
   if (m_pSplitter1 && m_pSplitter2)
  { //若已分割就恢复普通视图,我想恢复同时分割视图中的图形要照样显示,不知如何实现
   delete m_pSplitter1;
delete m_pSplitter2;
  m_pSplitter1 = m_pSplitter2=NULL;
  SetActiveView((CView*)CreateView(&pContext));
  GetActiveView()->OnInitialUpdate();
  }
  else
  {//若未分割,则分割,我想分割后m_pSplitter1->GetPane(0, 0)窗口中同样显示分割前普通窗口中的数据图形,
          //但不知怎样操作,敬请高手指点!
                  CRect rct;
  GetActiveView()->GetClientRect(&rct);
GetActiveView()->DestroyWindow();
  m_pSplitter1 = new CMySplitter;
m_pSplitter2 = new CMySplitter;  if(!m_pSplitter1->CreateStatic(this,1,2))
{
  TRACE0("Can't create splitter window1.\n");
return ;
}
  if(!m_pSplitter1->CreateView(0,0,RUNTIME_CLASS(CSeisImageView),
                    CSize(rct.Width()   *2/3,rct.Height()),&pContext))    
  {
  m_pSplitter1->DestroyWindow();
TRACE0("Can't create pane(0,0) view.\n");
  return ;
  } if(!m_pSplitter2->CreateStatic(m_pSplitter1,2,1,WS_CHILD|WS_VISIBLE,
                    m_pSplitter1->IdFromRowCol(0,1)))
{
TRACE0("Can't create splitter window2.\n");
  return ;

  if(!m_pSplitter2->CreateView(0,0,RUNTIME_CLASS(CSeisImageAmpView),
                      CSize(rct.Width()/3,rct.Height()/2),&pContext) 
     || !m_pSplitter2->CreateView(1,0,RUNTIME_CLASS(CSeisImagePhaseView),
                      CSize(rct.Width()/3,rct.Height()/2),&pContext))
  {
  m_pSplitter2->DestroyWindow();
TRACE0("Can't create pane(1,0) or pane(2,0) view.\n");
return ;
  }
  ((CView*)m_pSplitter1->GetPane(0, 0))->OnInitialUpdate();
  ((CView*)m_pSplitter2->GetPane(0, 0))->OnInitialUpdate();
((CView*)m_pSplitter2->GetPane(1, 0))->OnInitialUpdate();
  SetActiveView((CView*)m_pSplitter1->GetPane(0, 0));
  }
   RecalcLayout();
}