MFC TabControl父控件綁定子控件

首先,創建一個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需要設爲無。

再運行查看結果,可以看到很好的解決了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章