MFC的tab控件用法

1、成员变量:

	CTabCtrl m_tab;
	int m_CurSelTab; 
	CPage1 m_Page1; 
	CPage2 m_Page2; 
	CDialog* m_pTabDialog[2];  //用来保存对话框对象指针
	//各个Page的style为child,Border为None,要作为tab属性页

2、在OnInitDialog()里面初始化控件 :

	//tab初始化
	//为Tab Control增加两个页面
	m_tab.InsertItem(0, _T("Page1"));
	m_tab.InsertItem(1, _T("Page2")); 
	//创建两个对话框
	m_Page1.Create(IDD_DIALOG_Page1, &m_tab);
	m_Page2.Create(IDD_DIALOG_Page2, &m_tab);
	//设定在Tab内显示的范围
	CRect rc;
	m_tab.GetClientRect(rc);
	rc.top += 20;
	rc.bottom -= 0;
	rc.left += 0;
	rc.right -= 0;
	m_Page1.MoveWindow(&rc);
	m_Page2.MoveWindow(&rc); 
	//把对话框对象指针保存起来
	m_pTabDialog[0] = &m_Page1;
	m_pTabDialog[1] = &m_Page2;
	//显示初始页面
	m_pTabDialog[0]->ShowWindow(SW_SHOW);
	m_pTabDialog[1]->ShowWindow(SW_HIDE);
	//保存当前选择
	m_CurSelTab = 0;
3、tab切换Page:

void CCheckPCSystemDlg::OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码
	//把当前的页面隐藏起来    
	m_pTabDialog[m_CurSelTab]->ShowWindow(SW_HIDE);    
	//得到新的页面索引    
	m_CurSelTab = m_tab.GetCurSel();    
	//把新的页面显示出来    
	m_pTabDialog[m_CurSelTab]->ShowWindow(SW_SHOW);
	*pResult = 0;
}

4、使用tab里面的某个控件:

	CDialog* CurrGetDlg = m_pTabDialog[0];//确定属性页
	CString CurrDataStr = "hello";
	CurrGetDlg->GetDlgItem(IDC_STATIC)->SetWindowText(CurrDataStr);


你可能感兴趣的:(MFC)