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;
}