我想在Tab Control中显示两个对话框,但是对话框显示在外面,不在Tab Control中
m_tab是Tab Control的成员变量,m_CurSelTab在构造函数中设为0
m_page1和m_page2是对话框类的两个成员变量
代码如下:
OnInitDialog()中
{
    ...
      //为Tab Control增加两个页面
     m_tab.InsertItem(0, _T("First"));
     m_tab.InsertItem(1, _T("Second"));
    
     //创建两个对话框
     m_page1.Create(IDD_DIALOG1, &m_tab);
     m_page2.Create(IDD_DIALOG2, &m_tab);     //设定在Tab内显示的范围
     CRect rc;
     m_tab.GetClientRect(rc);
     rc.top += 20;
     rc.bottom -= 8;
     rc.left += 8;
     rc.right -= 8;     m_page1.MoveWindow(&rc);
     m_page2.MoveWindow(&rc);
     //显示初始页面
     m_page1.ShowWindow(SW_SHOW);
     m_page2.ShowWindow(SW_HIDE);     return TRUE;
}void CTabControlDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
 if(m_CurSelTab)
 {
m_page1.ShowWindow(SW_SHOW);
m_page2.ShowWindow(SW_HIDE);
 }
 else
 {
m_page1.ShowWindow(SW_HIDE);
m_page2.ShowWindow(SW_SHOW);
 }
m_CurSelTab = 1 - m_CurSelTab;

*pResult = 0;
}

解决方案 »

  1.   

    我想在Tab Control中显示两个对话框,但是对话框显示在外面,不在Tab Control中
    -----
    不知如何理解
      

  2.   

    创建的对话框要AddPage等添加到你的TabCtrl中
      

  3.   

    m_page1.Create(IDD_DIALOG1, GetDlgItem(IDC__TAB));这样试试呢
      

  4.   

    对话框显示在外面不在你的tab中很明显是因为你的对话框窗口风格为为WS_POPUP
    要设置成WS_CHILD呀!
      

  5.   

    解决了?对话框Border:None, Child属性