首先,创建一个TabControl控件,并绑定一个变量方便操作。
xxxDlg.cpp中绑定
void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TAB1, m_tab);
}
在DIALOG空白处右键,选择添加类添加一个DIALOG
xxxDlg.h中声明变量(记得把前面新建的类的头文件包含进来,这里是page1.h)
public:
CTabCtrl m_tab;
page1 page;
资源视图Dialog中选择添加资源新建一个对话框。
在初始化函数中将m_tab和page绑定,并设置位置
m_tab.InsertItem(0, _T("test")); //为tab添加标签,设置名称
page.Create(IDD_DIALOG1, &m_tab); //创建子控件
//设置子控件位置
CRect rs; m_tab.GetClientRect(&rs);
rs.top += 25; rs.bottom -= 0; rs.left += 0; rs.right -= 0;
page.MoveWindow(&rs);
page.ShowWindow(true); //初始时显示
m_tab.SetCurSel(0); //tab默认切换为0
下图为运行效果。可以看出来似乎有点问题,子控件没有在父控件中。
找到子控件的DIALOG,将Style设为Child。一般来说子控件的border需要设为无。
再运行查看结果,可以看到很好的解决了。