我定义了5个页面,用这个函数设置的m_Tab.InsertItem(m,&item)标签,但当用  switch((int)m_Tab.GetCurSel())
{
   case 0:
      m_xlbq.ShowWindow(SW_SHOW);
      break;
}
编译正常,但运行时就出错。
请哪位哥哥帮忙下
谢谢

解决方案 »

  1.   

    把你“定义了5个页面,用这个函数设置的m_Tab.InsertItem(m,&item)标签”这段代码贴出,并且在哪里调用“switch”这段代码的?
      

  2.   

    代码如下 :
    CJXQK m_jxqk;
    CKYQK m_kyqk;
    CSHJZ m_shjz;
    CSKQK m_skqk;
    CXLBQ m_xlbq;
    TCITEM item;
    item.mask=TCIF_TEXT;
    CString sPage;
    for(int m=0;m<5;m++)
    {
    switch(m)
    {
    case 0:
    sPage.Format("学历变迁",m+1);
    item.pszText=sPage.GetBuffer(sPage.GetLength());
    m_Tab.InsertItem(m,&item);
    break;
    case 1:
    sPage.Format("进修情况",m+1);
    item.pszText=sPage.GetBuffer(sPage.GetLength());
    m_Tab.InsertItem(m,&item);
    break;
    case 2:
    sPage.Format("上课情况",m+1);
    item.pszText=sPage.GetBuffer(sPage.GetLength());
    m_Tab.InsertItem(m,&item);
    break;
    case 3:
    sPage.Format("科研情况",m+1);
    item.pszText=sPage.GetBuffer(sPage.GetLength());
    m_Tab.InsertItem(m,&item);
    break;
    case 4:
    sPage.Format("社会兼职",m+1);
    item.pszText=sPage.GetBuffer(sPage.GetLength());
    m_Tab.InsertItem(m,&item);
    break;
    }
    }
    m_jxqk.Create(IDD_JXQK,this);
    m_kyqk.Create(IDD_KYQK,this);
    m_shjz.Create(IDD_SHJZ,this);
    m_skqk.Create(IDD_SKQK,this);
    m_xlbq.Create(IDD_XLBQ,this);
    CRect DlgRect,PageRect,NewRect;
    this->GetWindowRect(&DlgRect);
    int nFrameWidth,nTitHeight;
    nFrameWidth=GetSystemMetrics(SM_CXFRAME);
    nTitHeight=GetSystemMetrics(SM_CYSIZE)+nFrameWidth;
    this->m_Tab.GetWindowRect(&PageRect);
    NewRect.left=PageRect.left-DlgRect.left-nFrameWidth+2;
    NewRect.top=PageRect.top-DlgRect.top-2;
    NewRect.right=NewRect.left+PageRect.Width()-nFrameWidth;
    NewRect.bottom=NewRect.top+PageRect.Height()-nTitHeight-2;
    m_jxqk.MoveWindow(&NewRect);
    m_jxqk.ShowWindow(SW_SHOW);
    m_kyqk.MoveWindow(&NewRect);
    m_kyqk.ShowWindow(SW_HIDE);
    m_shjz.MoveWindow(&NewRect);
    m_shjz.ShowWindow(SW_HIDE);
    m_skqk.MoveWindow(&NewRect);
    m_skqk.ShowWindow(SW_HIDE);
    m_xlbq.MoveWindow(&NewRect);
    m_xlbq.ShowWindow(SW_HIDE);switch(m_Tab.GetCurSel())
    {
    case 0:
    m_xlbq.ShowWindow(SW_SHOW);
    m_jxqk.ShowWindow(SW_HIDE);
            m_kyqk.ShowWindow(SW_HIDE);
            m_shjz.ShowWindow(SW_HIDE);
            m_skqk.ShowWindow(SW_HIDE);
    break;
    case 1:
            m_jxqk.ShowWindow(SW_SHOW);
            m_kyqk.ShowWindow(SW_HIDE);
            m_shjz.ShowWindow(SW_HIDE);
            m_skqk.ShowWindow(SW_HIDE);
            m_xlbq.ShowWindow(SW_HIDE);
    break;
    case 2:
    m_skqk.ShowWindow(SW_SHOW);
    m_jxqk.ShowWindow(SW_HIDE);
            m_kyqk.ShowWindow(SW_HIDE);
            m_shjz.ShowWindow(SW_HIDE);
            m_xlbq.ShowWindow(SW_HIDE);
    break;
    case 3:
    m_kyqk.ShowWindow(SW_SHOW);
    m_jxqk.ShowWindow(SW_HIDE);
            m_shjz.ShowWindow(SW_HIDE);
            m_skqk.ShowWindow(SW_HIDE);
            m_xlbq.ShowWindow(SW_HIDE);
    break;
    case 4:
    m_shjz.ShowWindow(SW_SHOW);
    m_jxqk.ShowWindow(SW_HIDE);
            m_kyqk.ShowWindow(SW_HIDE);
            m_skqk.ShowWindow(SW_HIDE);
            m_xlbq.ShowWindow(SW_HIDE);
    break;
    }