MFC学习之路(7)之Tab Control控件的使用
参考博文:https://blog.csdn.net/dongganxiao_maidou/article/details/80778584
1 . 在主对话框中添加Tab Control控件,如下图所示,右键控件添加ctrl类变量m_tab
2.资源视图—>右键Dialog 插入两个需要在Tab Control控件上显示的子对话框,IDD_DIALOG1.IDD_DIALOG2
3.主对话框中,右键—>类向导(ClassWizard)添加两个子对话框对应的类,假设类名为CDIALOG1、CDIALOG2。
4.在资源视图下增加两个对话框,分别修改其属性,将Border改为None,Style改为child
在主对话框CXXXDlg.h中包含上述两个对话框的头文件,并在主对话框的类中添加:
CDIALOG1 m_page1;
CDIALOG2 m_page2;
5.在主对话框初始化代码中添加:
void CTabTreeDlg::OnTabCtrInit()
{
//为Tab Control增加两个页面
m_tab.InsertItem(0, _T("测试1"));
m_tab.InsertItem(1, _T("测试2"));
//创建两个对话框
m_page1.Create(IDD_DIALOG1, &m_tab);
m_page2.Create(IDD_DIALOG2, &m_tab);
//设定在Tab内显示的范围
CRect tabRect;
m_tab.GetClientRect(tabRect);
tabRect.left += 1;
tabRect.right -= 1;
tabRect.top += 22;
tabRect.bottom -= 1;
m_page1.MoveWindow(&tabRect);
m_page2.MoveWindow(&tabRect);
//显示初始页面
m_page1.ShowWindow(SW_SHOW);
m_page2.ShowWindow(SW_HIDE);
}
6.双击主对话框的TabControl控件进入消息编辑界面,添加:
void CTabTreeDlg::OnTabCtlSelect()
{
switch(m_tab.GetCurSel())
{
case 0:
m_page1.ShowWindow(SW_SHOW);
m_page2.ShowWindow(SW_HIDE);
break;
case 1:
m_page1.ShowWindow(SW_HIDE);
m_page2.ShowWindow(SW_SHOW);
break;
default:break;
}
}
7 .效果