1、建立基于对话框的MFC工程,名称为tab
2、从工具箱中将Tab控件拖到窗体中,关联变量:m_tab,类型:CTabCtr。
3、插入两个对话框:IDD_DIALOG1、IDD_DIALOG2,分别建立类向导,类名称为:CDialog1,CDialgo2。将对话框属性设为:样式–>下层(child),边框–>无
4、在tabDlg.h中添加头文件:
#include "dialog1.h"
#include "dialog2.h"
成员变量:
CDialog1 m_dlg1;
CDialog2 m_dlg2;
5、在tabDlg.cpp中的初始化函数OnInitDialog()添加:
//关联对话框,其父对话框为tab控件
m_dlg1.Create(IDD_DIALOG1, &m_tab);
m_dlg2.Create(IDD_DIALOG2, &m_tab);
//向tab控件中插入选项卡
m_tab.InsertItem(0, "dialog1");
m_tab.InsertItem(1, "dialog2");
m_tab.SetCurSel(0); //设置默认的选项卡
//获得IDC_TAB1客户区大小
CRect rs;
m_tab.GetClientRect(&rs);
//调整子对话框在父窗口中的位置
rs.top += 20;
rs.bottom -= 1;
rs.left += 1;
rs.right -= 1;
//设置子对话框尺寸并移动到指定位置
m_dlg1.MoveWindow(&rs);
m_dlg2.MoveWindow(&rs);
//设置隐藏和显示
//m_dlg1.CenterWindow();
m_dlg1.ShowWindow(SW_SHOW);
m_dlg2.ShowWindow(SW_HIDE);
6、双击Tab控件,添加:
void CTabDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int index = m_tab.GetCurSel();
switch(index)
{
case 0:
//m_dlg1.CenterWindow();
m_dlg1.ShowWindow(SW_SHOW);
m_dlg2.ShowWindow(SW_HIDE);
break;
case 1:
//m_dlg2.CenterWindow();
m_dlg2.ShowWindow(SW_SHOW);
m_dlg1.ShowWindow(SW_HIDE);
break;
default:
break;
}
*pResult = 0;
}
效果: