分享

VS下tab control使用方法(非常实用)

 haodafeng_org 2011-08-25

1. 在Visual Studio 2005中,新建一个项目,选择MFC应用程序, 取名MyTab, 选择Dialog based(基于对话框), 然后Finish.
2. 删除对话框上默认添加的三个控件. 添加Tab Control控件,右键选择“属性”,并设置ID为IDC_TABMAIN。调速尺寸使其布满整个对话框. 选中Tab Control控件,右键选择“添加变量”,变量名为m_tabMain. 类型为CTabCtrl.
3. 在CXXXDlg类中的对话框初始化函数OnInitDialog里面添加如下代码:

//添加选项卡
m_tabMain.InsertItem(0,_T("选项卡1"));//“选项卡1”可更改,是sheet页的名字;
m_tabMain.InsertItem(1,_T("选项卡2"));
m_tabMain.InsertItem(2,_T("选项卡3"));

4.在资源视图里的Dialog,点击"Dialog”右键,选择"插入Dialog”,插入三个Dialog, ID分别命名为IDD_DIALOG1, IDD_DIALOG2, IDD_DIALOG3(可根据具体Dialog的用途来命名). 每个Dialog的属性中,style为Child, Border为None, 宽度调整下. 再分别为其添加对应的基于CDialog类CDialog1, CDialog2, CDialog3.

5. 在类视图中,点CMyTabDlg类右键,选择添加变量,依次添加三个成员变量m_para1, m_para2, m_para3(命名也随意,最好对应着类), 分别是三个子对话框的实例. 代码如下:

CDialog1 m_para1;
CDialog2 m_para2;
CDialog3 m_para3;

6. 在IDD_MYTAB_DIALOG对话框的初始化函数OnInitDialog里面添加如下代码:

//关联对话框,并且将IDC_TABMAIN控件设为父窗口
m_para1.Create(IDD_DIALOG1,GetDlgItem(IDC_TABMAIN));
m_para2.Create(IDD_DIALOG2,GetDlgItem(IDC_TABMAIN));
m_para3.Create(IDD_DIALOG3,GetDlgItem(IDC_TABMAIN));


//获得IDC_tabMain客户区大小
CRect rs;
m_tabMain.GetClientRect(&rs);

//调整子对话框在父窗口中的位置,可以改动数值,使子窗体的大小合适;
rs.top+=20;
rs.bottom-=3;
rs.left+=2;
rs.right-=2;

//设置子对话框尺寸并移动到指定位置
m_para1.MoveWindow(&rs);
m_para2.MoveWindow(&rs);
m_para3.MoveWindow(&rs);

//分别设置隐藏和显示
m_para1.ShowWindow(true);
m_para2.ShowWindow(false);
m_para3.ShowWindow(false);

//设置默认的选项卡
m_tabMain.SetCurSel(0);

7. 在资源视图中,右键Tab Control,选择“添加事件处理程序”,选择TCN_SELCHANGE事件,事件处理程序名称“OnTcnSelchangeTabmain”,这样就有了切换sheet页的响应函数OnSelchangeTabmain(NMHDR* pNMHDR, LRESULT* pResult) ,函数体代码如下:

// TODO: 在此添加控件通知处理程序代码

int CurSel = m_tabMain.GetCurSel();
switch(CurSel)
{
case 0:
m_para1.ShowWindow(true);
m_para2.ShowWindow(false);
m_para3.ShowWindow(false);
break;
case 1:
m_para1.ShowWindow(false);
m_para2.ShowWindow(true);
m_para3.ShowWindow(false);
break;
case 2:
m_para1.ShowWindow(false);
m_para2.ShowWindow(false);
m_para3.ShowWindow(true);
break;
default:;
}
*pResult = 0;

8.现在在类视图中,点根目录mytab,右键选择“生成”,应该是一个成功的。

现在框架搭好了,只需要在资源视图中的相应的Dialog上作相应的设计了

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多