当前位置:C++技术网 > 资讯 > MFC中TabCtrl的基本使用方法

MFC中TabCtrl的基本使用方法

更新时间:2015-06-23 22:22:30浏览次数:1+次

什么是TabCtrl?
1.机制说明
    每一个按钮下的操作区域,都是一个窗口(CDialog或CDialogEx)。如果要操作方便,最好还是绑定一个窗口类。
    这个控件其实是将多个窗口重叠在下面的操作区域,通过一个函数使得相应的窗口显示而其他窗口隐藏。

2.使用方法

①创建对象:

CTabCtrl m_tab;

②绑定对象:
找到DoDataExchange函数添加:

DDX_Control(pDX,控件的ID,m_tab);

③创建子窗口:
创建数个子窗口及其对应的类,将每个子窗口的Style属性改成Child,Border属性改成None。
类的名字设为PageOne,PageTwo,PageThree等
注释:
Border:无边框(None),细边框(Thin),调整大小(Resizing),对话框外框(Dialog Frame)
Style:重叠(Overlapped),弹出(Popup),子级(Child)

④添加OnInitDialog(非必须)

⑤添加按钮:
在OnInitDialog中添加

m_tab.InsertItem(0,_T("PageOne"));
m_tab.InsertItem(1,_T("PageTwo"));
m_tab.InsertItem(2,_T("PageThree"));


⑥获取并设置子页应该添加的区域

CRect rect;
m_tab.GetClientRect(rect);
m_tab.AdjustRect(FALSE, rect);

⑦添加子页

CPageOne m_Page1;
if(!m_sj.Create(CPageOne::IDD, &m_tab))//添加PageOne子页
return FALSE;
m_Page1.MoveWindow(rect);  //将子页移动至相应区域
m_Page1.ShowWindow(SW_HIDE); //设置子页属性为隐藏

添加PageTwo,PageThree子页如法炮制
末尾添加

m_tab.SetCurSel(0); //此成员函数用来从一个标签控件中选择一个标签。
ChangeTabPage(0);  //这个函数用来设置子窗口的隐藏和显示,函数体如下:
void ChangeTabPage(int page)
{
    if(page < 0 || page >= 3)
    return;
    CWnd *pageWnd[3] = {&m_Page1, &m_Page2, &m_Page3};
    for(int i = 0; i < 3; ++i)
    pageWnd[i]->ShowWindow(page != i ? SW_HIDE : SW_SHOW);
}

注:SW_HIDE表示隐藏,SW_SHOW表示显示