Tab control控件的使用
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;
}