一、新建一個MFC工程, 取名Tabctrl, 選擇基於對話框, 然后點完成。
二、刪除對話框上默認添加的三個控件,添加Tab Control控件,屬性設置:ID:IDC_TAB1
三、 為Tab Control控件綁定控件變量,變量名為m_Tab,類型為CTabCtrl。
四、在TabCtrlDlg.cpp文件中,找到初始化函數OnInitDialog並在里面添加如下代碼:
//分欄,分為第一頁第二頁
m_Tab.InsertItem(0,_T(“第一頁”));
m_Tab.InsertItem(1,_T(“第二頁”));
五、在對話框資源里面添加兩個對話框資源,
第一個對話框:
刪除對話框上默認添加的三個控件;屬性設置:border設置為None;style設置為child, ID為IDD_PAGE1;添加靜態文本框,改為“第一頁”;再為其添加對應的基於CDialog類CPage1。
第二個對話框:
刪除對話框上默認添加的三個控件;屬性設置:border設置為None;style設置為child, ID為IDD_PAGE2;添加靜態文本框,改為“第二頁”;添加對應的基於CDialog類CPage2。
六、 在TabCtrlDlg.h中包含頭文件並添加兩個個成員變量m_Page1, m_ Page 2,如下:
#include "Page1.h"
#include "Page1.h"
CPage1 m_Page1;
CPage2 m_Page2;
七、 在TabCtrlDlg.cpp對話框的初始化函數OnInitDialog里面添加如下代碼:
//關聯對話框,並且將IDC_TABTEST控件設為父窗口
m_Page1.Create(IDD_PAGE1,GetDlgItem(IDC_TAB1));
m_Page2.Create(IDD_PAGE2,GetDlgItem(IDC_TAB1));
//獲得IDC_TABTEST客戶區大小
CRect rs;
m_tab.GetClientRect(&rs);
//調整子對話框在父窗口中的位置
rs.top+=30;
rs.bottom-=60;
rs.left+=1;
rs.right-=2;
//設置子對話框尺寸並移動到指定位置
m_Page1.MoveWindow(&rs);
m_ Page a2.MoveWindow(&rs);
//分別設置隱藏和顯示
m_ Page 1.ShowWindow(true);
m_ Page 2.ShowWindow(false);
//設置默認的選項卡
m_Tab.SetCurSel(0);
八、 選擇Tab Control控件,右擊/添加事件處理程序,消息類型TCN_SELCHANGE,事件響應函數OnSelchangeTabtest(NMHDR* pNMHDR, LRESULT* pResult) ,
函數體代碼如下:
int CurSel = m_Tab.GetCurSel();
switch(CurSel)
{
case 0:
m_Page1.ShowWindow(true);
m_ Page2.ShowWindow(false);
break;
case 1:
m_Page1.ShowWindow(true);
m_ Page2.ShowWindow(false);
break;
default:
;
}
*pResult = 0;}