VC.NET使用 tabControl

来源:互联网 发布:ck内裤价格知乎 编辑:程序博客网 时间:2024/05/28 15:08


声明为窗口类的成员
//tab控件设置
 CTabCtrl tabControl;


 childCD * a; //对话框类
 child2 * b;//对话框类


//在窗口类的构造函数中,实例化要用到的两个子窗口类
 a=new childCD;
 b=new child2;
 

BOOL CvpTestDlg::OnInitDialog()
{
 

 CDialog::OnInitDialog();

 

 

 // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
 //  执行此操作
 SetIcon(m_hIcon, TRUE);   // 设置大图标
 SetIcon(m_hIcon, FALSE);  // 设置小图标

//
 
  
    TCITEM tc1,tc2;
 tc1.mask = TCIF_TEXT;
 tc1.pszText = "配置飞机支架";
 tc2.mask = TCIF_TEXT;
 tc2.pszText = "配置支架"; 

    tabControl.InsertItem(0, &tc1);
    tabControl.InsertItem(1,&tc2);

 

 CRect rec;
 tabControl.GetClientRect(&rec);//获得TAB控件的坐标 
  
 
 a->Create(IDD_DIALOG1,GetDlgItem(IDC_tabControl));
 b->Create(IDD_DIALOG2,GetDlgItem(IDC_tabControl));


 //将子页面移动到指定的位置
   a->MoveWindow(20,20,rec.right -20,rec.bottom -40);
   a->ShowWindow(SW_RESTORE);
   tabControl.SetCurSel(0);
  
   return TRUE;  // 除非设置了控件的焦点,否则返回 TRUE
}


void CvpTestDlg::OnTcnSelchangetabcontrol(NMHDR *pNMHDR, LRESULT *pResult)
{
 
 CRect rec;
 tabControl.GetClientRect(&rec);//获得TAB控件的坐标  
 


 switch (tabControl.GetCurSel())
    {
      case 0:

     //将子页面移动到指定的位置
            a->MoveWindow(20,20,rec.right -20,rec.bottom -40);
            a->ShowWindow(SW_RESTORE);          
            b->ShowWindow(SW_HIDE);
            break;
       case 1:
            //将子页面移动到指定的位置
            b->MoveWindow(20,20,rec.right -20,rec.bottom -40);
            b->ShowWindow(SW_RESTORE);          
            a->ShowWindow(SW_HIDE);
            break;
      default:
            break;
    }
 
 *pResult = 0;
}

 

关闭时,必须让

a=NULL, b=NULL;