MFC一一TabCtrl控件

TabCtrl控件:标签控件,主要用于多配置视图,方便显示与切换

具体使用方法:

一、首先在Dialog面板中添加一个TabCtrl控件,并关联成员变量m_CtrlTab

二、创建Tab标签对应的子对话框,并分别添加对应的对话框类,并创建一个Dialog指针数组,用于关联每个对话框

注意:对话框设置属性Style=Child,Border=None。

CDialog*		m_pPage[MAX_PAGE];
void CDialogMain::InitTabCtrlStyle()
{
	m_CtrlTab.InsertItem(0,_T("System"));
	m_CtrlTab.InsertItem(1,_T("Custom1"));
	m_CtrlTab.InsertItem(2,_T("Custom2"));
	m_CtrlTab.InsertItem(3,_T("Custom3"));

	CRect rect;
	GetWindowRect(&rect);
	GetDlgItem( IDC_TAB1 )->SetWindowPos(NULL,0,0,rect.Width(),rect.Height(),SWP_NOZORDER|SWP_NOMOVE);

	m_Dialog1.Create(IDD_DIALOG1,&m_CtrlTab);
	m_pPage[0] = &m_Dialog1;
	m_Dialog2.Create(IDD_DIALOG2,&m_CtrlTab);
	m_pPage[1] = &m_Dialog2;
	m_Dialog3.Create(IDD_DIALOG3,&m_CtrlTab);
	m_pPage[2] = &m_Dialog3;
	m_Dialog4.Create(IDD_DIALOG4,&m_CtrlTab);
	m_pPage[3] = &m_Dialog4;
	
	//设定显示在Tab范围内  
	CRect rc;  
	m_CtrlTab.GetClientRect(rc);   //获取当前tab控件和客户区域  
	rc.top +=20;  
	//rc.bottom -=5;  
	rc.left -=3;  
	//rc.right -=1;  

	m_Dialog1.MoveWindow(&rc);        
	m_Dialog1.ShowWindow(SW_SHOW);    
	m_Dialog2.MoveWindow(&rc);        
	m_Dialog2.ShowWindow(SW_HIDE);   
	m_Dialog3.MoveWindow(&rc);       
	m_Dialog3.ShowWindow(SW_HIDE);   
	m_Dialog4.MoveWindow(&rc);       
	m_Dialog4.ShowWindow(SW_HIDE);    
}

三、标签选项卡切换响应函数

void CDialogMain::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码
	int cur_sel =m_CtrlTab.GetCurSel();  

	if(m_CurSelPage !=cur_sel){  
		m_pPage[m_CurSelPage]->ShowWindow(SW_HIDE);  
		m_pPage[cur_sel]->ShowWindow(SW_SHOW);  

		m_CurSelPage =cur_sel;  
	}  
	*pResult = 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值