1、在主窗口中定义一个CtabCtrl,添加变量m_tabctrl;

2、添加两个子窗口IDD_ONE_DIALOG,IDD_TWO_DIALOG(新建对话框,然后双击界面添加头文件和cpp),属性为child和无边框

3、在主窗口头文件中定义这两个子窗口的类对象m_one,m_two

自定义下面函数,放在初始化函数里面,就给这个tab生成了两个界面

void CDlg::AddTab()

{

CRect rect;

this->GetClientRect(&rect);

m_tabctrl.InsertItem(0, _T("1"));

m_tabctrl.InsertItem(1, _T("2"));

m_server.Create(IDD_ONE_DIALOG, &m_tabctrl);

m_server.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_SHOWWINDOW);

m_client.Create(IDD_TWO_DIALOG, &m_tabctrl);

m_client.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_HIDEWINDOW);

}

4、重写OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)虚函数

通过下面来显示或者隐藏对应项

CRect rect;

this->GetClientRect(&rect);

switch (m_tabctrl.GetCurSel())

{

  case 0:

    {

    m_server.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_SHOWWINDOW);

    m_client.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_HIDEWINDOW);

    break;

    }

  case 1:

    {

    m_server.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_HIDEWINDOW);

    m_client.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_SHOWWINDOW);

    break;

    }

  default:

    break;

 }




长风破浪会有时,直挂云帆济沧海!