首页 > 代码库 > tab控件的使用心得

tab控件的使用心得

现在要做一个登陆系统,功能包括注册消息,修改消息,登陆等等。考虑使用tab控件来将所有功能都集中在一个对话框中实现。

step1  在主对话框中拖入一个tab控件,命名随意,在ClassWizard为控件添加变量, 变量名为m_tab. 类型为CTabCtrl。

step2  为tab控件中每一个选项卡初始化名称。例如将第一个选项卡命名为“登陆”的代码:m_taboption.InsertItem(0, "登陆")。以此类推。

step3  有几个选项卡新建几个对话框资源,并将在主对话框中实例化这几个对话框的对象,并将每个对话框都关联到tab控件上。例如我新建了一个登陆对话框类loginDlg, 并在主对话框中有一个成员是该对话框的实例化对象m_CloginDlg, 使用m_CloginDlg.Create(IDD_DIALOG_LOGIN, &m_taboption)即可。

step4  将对话框放在特定位置,我将每个功能对话框的坐标设置在tab控件内。部分代码如下:

//获得IDC_TAB大小
CRect rs;
m_tab.GetWindowRect(&rs);
//调整子对话框在父窗口中的位置
rs.top += 20;

m_CloginDlg.MoveWindow(&rs);

step5  根据点击不同的tab控件中的选项,设置为只有一个对话框显示。部分代码如下:

int tabnumber = m_taboption.GetCurSel();

switch (tabnumber)
    {
        case 0:
            m_CloginDlg.ShowWindow(true);
            m_CcontactusDlg.ShowWindow(false);
            m_CmodifyDlg.ShowWindow(false);
            m_CregisterDlg.ShowWindow(false);
            break;

......

step 6  也许还需要设置tab控件中的选项卡尺寸

//设置tab标签大小,这里只有四个选项,想要与tab控件尺寸一致
    CSize tabsize;
    tabsize.cx = (rs.right - rs.left) / 4 - 1;
    tabsize.cy = 20;
    m_taboption.SetItemSize(tabsize);

ok,tab控件搞定,每个选项的具体实现就在每个对话框中实现啦。

 

tab控件的使用心得