CTabCtrl的使用
建立一个基于对话框的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;
}
TabCtrl控件的基本使用介绍到这。
第一步:
在程序主对话框中添加控件,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;
}
TabCtrl控件的基本使用介绍到这。