求高人解决:SDI的视图切换有关问题

求高人解决:SDI的视图切换问题
设计一个应用程序,SDI,有三个视图(一个是程序启动进入的欢迎界面,另外两个是实际去要进行切换的界面)。
并且,两视图是从CFormView继承来的。
写了视图切换函数CFrameWnd::SwichToView()如下:(该函数应该没问题,在其他程序中用过)
CView*   pOldActiveView   =   GetActiveView();
CView*   pNewActiveView   =   (CView*)   GetDlgItem(myView);
if(pNewActiveView   ==   NULL)
{
switch(myView)
{
case   IDD_DATCOLLECTION:
pNewActiveView   =   new   DatCollectionDLG();
break;
case   IDD_DATANALYSE:
pNewActiveView   =   new   DatAnalyseDLG();
break;
default   :
break;
}
CCreateContext   context;//link   doc   and   view
context.m_pCurrentDoc   =   pNewActiveView-> GetDocument();
pNewActiveView-> Create(NULL,NULL,WS_BORDER|WS_CHILD,CFrameWnd::rectDefault,this,myView,&context);//create   wnd
pNewActiveView-> OnInitialUpdate();//init   view
}
SetActiveView(pNewActiveView);
pNewActiveView-> ShowWindow(SW_SHOW);//show   new   view
pOldActiveView-> ShowWindow(SW_HIDE);//hide   old   view
//set   old   view   id
if(pOldActiveView-> GetRuntimeClass()   ==   RUNTIME_CLASS(DatAnalyseDLG))
SetDlgCtrlID(IDD_DATANALYSE);
else   if(pOldActiveView-> GetRuntimeClass()   ==   RUNTIME_CLASS(DatCollectionDLG))
SetDlgCtrlID(IDD_DATCOLLECTION);
// else   if(pOldActiveView-> GetRuntimeClass()   ==   RUNTIME_CLASS(VelTableDLG)
// SetDlgCtrlID(IDD_VELTABLE);
pNewActiveView-> SetDlgCtrlID(AFX_IDW_PANE_FIRST);//?
delete   pOldActiveView;
RecalcLayout();
编译连接后,程序能进入初始的欢迎界面,但是一切换两视图中的任一个,出现严重错误。
Debug   Assertion   Failed!
不知怎么回事?指教。

------解决方案--------------------
我的是mdi,用的也是formview,可以切换的,看看代码

// MainFrm.h
class CMainFrame : public CMDIFrameWnd
{
DECLARE_DYNAMIC(CMainFrame)
public:
CMainFrame();

// Operations
public:
CChildFrame * m_ChildFrameView;//在MainFrm.h中定议一个CChildFrame 指针
}

// MainFrm.cpp
void CMainFrame::OnShowMyFormView()
{

// TODO: Add your command handler code here
if( m_ChildFrameView!=NULL)
{
m_ChildFrameView-> MDIActivate();
return;
}

CCreateContext context;

//context.m_pNewDocTemplate=(CMyApp *)AfxGetApp()-> GetFirstDocTemplatePosition();
context.m_pNewViewClass=RUNTIME_CLASS(CMyFormView);

m_ChildFrameView=new CChildFrame();
m_ChildFrameView-> SetTitle( "管理数据库 ");
if(! m_ChildFrameView-> LoadFrame(IDR_TYPE,WS_MAXIMIZE|WS_OVERLAPPEDWINDOW,this,&context))
return;
m_ChildFrameView-> ShowWindow(SW_SHOWMAXIMIZED);
m_ChildFrameView-> InitialUpdateFrame(NULL,true);



}