创建TAB窗体步骤:
1、创建DIALOG BASED 程序VcTab, 主窗体:IDD_VCTAB_DIALOG;
2、添加tbcontrol IDC_TAB;
3、添加控件的关联变量m_tab;
4、创建3个将与m_tab绑定的窗体:IDD_PAGE0、IDD_PAGE1、IDD_PAGE2,;
5、使用类向导创建对应的3个类CPage0、CPage1、CPage2;
6、主窗体:IDD_VCTAB_DIALOG中增加3个变量:
CPage0 m_Page0;
CPage1 m_Page1;
CPage2 m_Page2;
//引用头文件 #include Page0.h #include Page1.h #include Page2.h
7、创建显示页函数:
void CVcTabDlg::ShowPage(int index)
{
switch(index)
{
case 0:
m_Page0.ShowWindow(true);
m_Page1.ShowWindow(false);
m_Page2.ShowWindow(false);
break;
case 1:
m_Page0.ShowWindow(false);
m_Page1.ShowWindow(true);
m_Page2.ShowWindow(false);
break;
case 2:
m_Page0.ShowWindow(false);
m_Page1.ShowWindow(false);
m_Page2.ShowWindow(true);
break;
}
}
8、OnInitDialog()中写代码
// TODO: Add extra initialization here
//定义需要插入3个页面
m_tab.InsertItem(0, "页0");
m_tab.InsertItem(1, "页1");
m_tab.InsertItem(2, "页2");
//绑定3个页面
m_Page0.Create(IDD_PAGE0, &m_tab);//GetDlgItem(IDC_TAB)
m_Page1.Create(IDD_PAGE1, &m_tab);
m_Page2.Create(IDD_PAGE2, &m_tab);
//移动3个页面的位置
CRect rect;
m_tab.GetClientRect(&rect);
rect.top += 20;
rect.left += 20;
rect.right -= 20;
rect.bottom -= 20;
m_Page0.MoveWindow(&rect);
m_Page1.MoveWindow(&rect);
m_Page2.MoveWindow(&rect);
//展示一个页面
m_tab.SetCurSel(1);
ShowPage(1);
9、页面切换事件:
void CVcTabDlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult)
{
ShowPage(m_tab.GetCurSel());
*pResult = 0;
}