现在的位置: 首页 > 综合 > 正文

CTabCtrl的使用

2013年12月13日 ⁄ 综合 ⁄ 共 1155字 ⁄ 字号 评论关闭

原文出处: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;
}

抱歉!评论已关闭.