CTabCtrl的使用

原文出处:http://www.cnblogs.com/wxfasdic/archive/2009/06/12/1502305.html

建立一个基于对话框的MFC程序tabctrltest

第一步:
在程序主对话框中添加控件,ID修改为IDM_tabList,添加控件变量 m_tablist;
第二步:
新建一个对话框,ID修改为IDM_dlgtab1,修改属性styles->child;border->None;可以在上面添加些控件,(自己布置)
然后建立类向导,继承CDialog。 类名为CDlgTab1;
第三步:
在程序主对话框类中添加CDlgTab1类的对象m_dlgtab1;

在 OnInitDialog()函数中添加如下代码:

//初始化m_tablist控件
m_tablist.InsertItem(0,_T("第一页"));    //红色部分为每一页显示的标题
//建立各属性页
m_dlgtab1.Create(IDM_dlgtab1,&m_tablist);
// 设置页面的位置在m_tablist控件范围内
CRect rc;
m_tablist.GetClientRect(rc);
rc.top += 21;
rc.bottom -= 1;
rc.left += 1;
rc.right -= 1;
m_dlgtab1.MoveWindow(rc);
m_dlgtab1.ShowWindow(SW_SHOW);

上 面仅仅是演示了建立一个属性页的过程,也可以建立多个对话框,将他们绑定到tabctrl控件中。但是,此时要为控件添加OnTcnSelchangetablist(...)消息响应处理函数。这个函数完成当我们切换页面时,显示相应的对话框。一般来说,这个函数的格式为:

void CLASSNAME::OnTcnSelchangetablist(NMHDR *pNMHDR, LRESULT *pResult)
{
switch(m_tablist.GetCurSel())
{
case 0:
{
m_tab1Dlg.ShowWindow(SW_SHOW);
m_tab2Dlg.ShowWindow(SW_HIDE);
m_tab3Dlg.ShowWindow(SW_HIDE);
break;
}
case 1:
{
m_tab1Dlg.ShowWindow(SW_HIDE);
m_tab2Dlg.ShowWindow(SW_SHOW);
m_tab3Dlg.ShowWindow(SW_HIDE);
break;
}
case 2:
{
m_tab1Dlg.ShowWindow(SW_HIDE);
m_tab2Dlg.ShowWindow(SW_HIDE);
m_tab3Dlg.ShowWindow(SW_SHOW);
break;
}
。
。
。
default:
{}
}
*pResult = 0;
}

CTabCtrl类是MFC中的一个控件类,它用于创建多个选项卡,并在其中显示不同的内容。以下是CTabCtrl的基本使用步骤: 1. 在对话框资源中添加一个Tab Control控件。 2. 在代码中定义一个CTabCtrl对象,并调用其Create()函数进行初始化。如下所示: ```c++ CTabCtrl tabCtrl; tabCtrl.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP, CRect(10, 10, 300, 200), this, 1); ``` 3. 调用CTabCtrl的InsertItem()函数添加选项卡。如下所示: ```c++ TCITEM tcItem; tcItem.mask = TCIF_TEXT; tcItem.pszText = _T("Tab 1"); tabCtrl.InsertItem(0, &tcItem); ``` 这样就添加了一个名为“Tab 1”的选项卡。 4. 在选项卡上添加控件。可以在选项卡上添加任何控件,例如按钮、列表框等。需要注意的是,这些控件需要设置为子窗口,否则在选项卡上无法显示。如下所示: ```c++ CButton btn; btn.Create(_T("Button 1"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(10, 40, 100, 60), &tabCtrl, 2); ``` 5. 在选项卡切换时显示不同的内容。可以通过CTabCtrl的SetCurSel()函数设置当前选中的选项卡,并在该选项卡上显示相应的内容。如下所示: ```c++ int nSel = tabCtrl.GetCurSel(); switch (nSel) { case 0: // 显示选项卡1的内容 break; case 1: // 显示选项卡2的内容 break; case 2: // 显示选项卡3的内容 break; } ``` 以上就是使用CTabCtrl控件创建选项卡的基本步骤。需要注意的是,CTabCtrl控件的使用还有很多细节需要注意,例如添加选项卡时需要设置选项卡的样式、选项卡的图标等。建议参考MFC的官方文档进行详细学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值