MFC TabControl父控件绑定子控件

首先,创建一个TabControl控件,并绑定一个变量方便操作。

MFC TabControl父控件绑定子控件_第1张图片

xxxDlg.cpp中绑定

void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_TAB1, m_tab);
}

在DIALOG空白处右键,选择添加类添加一个DIALOG

MFC TabControl父控件绑定子控件_第2张图片

xxxDlg.h中声明变量(记得把前面新建的类的头文件包含进来,这里是page1.h)

public:
	CTabCtrl m_tab;
	page1 page;

资源视图Dialog中选择添加资源新建一个对话框。

MFC TabControl父控件绑定子控件_第3张图片

在初始化函数中将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

下图为运行效果。可以看出来似乎有点问题,子控件没有在父控件中。

MFC TabControl父控件绑定子控件_第4张图片

找到子控件的DIALOG,将Style设为Child。一般来说子控件的border需要设为无。

MFC TabControl父控件绑定子控件_第5张图片

再运行查看结果,可以看到很好的解决了。

MFC TabControl父控件绑定子控件_第6张图片

你可能感兴趣的:(c++)