1创建一个Tab control控件到对话框中,添加变量为 CTabCtrl m_MyTab 2创建两个对话框用来做切换的不同的显示界面,属性一定要Border属性设置为None,Style设置为Child,不然使用不了,类名为PageTest 3在对话框类中添加刚刚创建的对话框页面,代码如下
PageTest m_Page1; PageTest m_Page2; CDialog* pDialog[2]; //用来保存对话框对象指针 int m_CurSelTab;4在对话框OnInitDialog函数中初始化控件,代码如下
//为Tab Control增加两个页面 m_MyTab.InsertItem(0, _T("页面1")); m_MyTab.InsertItem(1, _T("页面2")); //创建两个对话框 m_Page1.Create(IDD_DIALOG2, &m_MyTab); m_Page2.Create(IDD_DIALOG1, &m_MyTab); //设定在Tab内显示的范围 CRect rc; m_MyTab.GetClientRect(rc); rc.top += 20; rc.bottom -= 0; rc.left += 0; rc.right -= 0; m_Page1.MoveWindow(&rc); m_Page2.MoveWindow(&rc); //把对话框对象指针保存起来 pDialog[0] = &m_Page1; pDialog[1] = &m_Page2; //显示初始页面 pDialog[0]->ShowWindow(SW_SHOW); pDialog[1]->ShowWindow(SW_HIDE); //保存当前选择 m_CurSelTab = 0;5在tab控件上双击响应程序下代码处理切换功能,代码如下:
void CMFCTestContorDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 在此添加控件通知处理程序代码 //把当前的页面隐藏起来 pDialog[m_CurSelTab]->ShowWindow(SW_HIDE); //得到新的页面索引 m_CurSelTab = m_MyTab.GetCurSel(); //把新的页面显示出来 pDialog[m_CurSelTab]->ShowWindow(SW_SHOW); *pResult = 0; }