// 头文件 #pragma once // CTabView class CTabView : public CCtrlView ... { DECLARE_DYNCREATE(CTabView)public: CTabView(); virtual ~CTabView(); CTabCtrl& GetTabCtrl() const;protected: DECLARE_MESSAGE_MAP() virtual BOOL PreCreateWindow(CREATESTRUCT& cs);public: virtual void OnInitialUpdate();} ; // 源文件 #include " stdafx.h " #include " TabView.h " // CTabView IMPLEMENT_DYNCREATE(CTabView, CCtrlView)CTabView::CTabView() : CCtrlView(_T( " SysTabControl32 " ), AFX_WS_DEFAULT_VIEW) ... {} CTabView:: ~ CTabView() ... {} BEGIN_MESSAGE_MAP(CTabView, CCtrlView)END_MESSAGE_MAP() // CTabView message handlers CTabCtrl & CTabView::GetTabCtrl() const ... { return *(CTabCtrl*)this;} BOOL CTabView::PreCreateWindow(CREATESTRUCT & cs) ... { // TODO: Add your specialized code here and/or call the base class if(!CCtrlView::PreCreateWindow(cs)) return FALSE; //cs.style |= TCS_FIXEDWIDTH; return TRUE;} void CTabView::OnInitialUpdate() ... { CCtrlView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class static CString sLable[] = ...{ _T("Tab No 1"), _T("Tab No 2"), _T("Tab No 3") }; GetTabCtrl().SetItemSize(CSize(100, 0)); TC_ITEM item; item.mask = TCIF_TEXT; for(int i=0; i<3; i++) ...{ item.pszText = (LPSTR)(LPCTSTR)sLable[i]; item.cchTextMax = sLable[i].GetLength(); GetTabCtrl().InsertItem(i, &item); }}