http://www.codeproject.com/KB/tabs/TabCtrl.aspx
TabCtrlEx<tabctrlstyle_vs2003_client /> m_TabCtrl;
CListCtrl m_List1, m_List2, m_List3;
...
...
// Creation and initialization of TabCtrl.
if(m_TabCtrl.Create(this,WS_CHILD | WS_VISIBLE,
CRect(0,0,0,0),100/*id of TabCtrl*/)==false) return -1;
m_TabCtrl.SetBehavior(TAB_BEHAVIOR_SCROLL);
CImageList imagelist, imagelistSys;
CBitmap bmp, bmpSys;
imagelist.Create(16,16,ILC_COLOR24 | ILC_MASK,3,0);
bmp.LoadBitmap(IDB_BITMAP1);
imagelist.Add(&bmp,RGB(255,0,255));
imagelistSys.Create(14,14,ILC_COLOR24 | ILC_MASK,7,0);
bmpSys.LoadBitmap(IDB_BITMAP2);
imagelistSys.Add(&bmpSys,RGB(255,0,255));
m_TabCtrl.SetImageLists(&imagelist,NULL);
m_TabCtrl.SetSystemImageList(&imagelistSys);
// Creation of child windows.
if(m_List1.Create(WS_CHILD | WS_CLIPCHILDREN | LVS_SHOWSELALWAYS |
LVS_REPORT,CRect(0,0,0,0),&m_TabCtrl,2001)==0 ||
m_List2.Create(WS_CHILD | WS_CLIPCHILDREN | LVS_SHOWSELALWAYS |
LVS_REPORT,CRect(0,0,0,0),&m_TabCtrl,2002)==0 ||
m_List3.Create(WS_CHILD | WS_CLIPCHILDREN | LVS_SHOWSELALWAYS |
LVS_REPORT,CRect(0,0,0,0),&m_TabCtrl,2003)==0)
return -1;
// Initialization of child windows.
m_List1.InsertColumn(0,_T("Mail"),LVCFMT_LEFT,100);
m_List1.InsertItem(0,_T("Mail 1"));
m_List2.InsertColumn(0,_T("Calendar"),LVCFMT_LEFT,100);
m_List2.InsertItem(0,_T("Calendar 1"));
m_List3.InsertColumn(0,_T("Contacts"),LVCFMT_LEFT,100);
m_List3.InsertItem(0,_T("Contact 1"));
// Attaching of child windows to the TabCtrl.
if(m_TabCtrl.Add(m_List1,_T("1.Mail"),0)==NULL ||
m_TabCtrl.Add(m_List2,_T("2.Calendar"),1)==NULL ||
m_TabCtrl.Add(m_List3,_T("3.Contacts"),2)==NULL)
return -1;
// Load state from registry and update.
m_TabCtrl.LoadState(AfxGetApp(),_T("TabCtrl"),_T("State"));
m_TabCtrl.Update();