1 #pragma once 2 #include "IconMgr.h" 3 4 // CTabCtrlEx 5 6 class CTabCtrlEx : public CTabCtrl 7 { 8 DECLARE_DYNAMIC(CTabCtrlEx) 9 10 public: 11 CTabCtrlEx(); 12 virtual ~CTabCtrlEx(); 13 14 void AddWindow(CWnd* pWnd, LPCTSTR lable_text, IconMgr::IconType icon_type); //向当前tab控件添加一个子窗口 15 void SetCurTab(int index); 16 CWnd* GetCurrentTab(); 17 // 调整所有标签页大小兼执行设置图标 18 void AdjustTabWindowSize(); 19 20 void Clear(); 21 22 protected: 23 void CalSubWindowSize(); 24 25 DECLARE_MESSAGE_MAP() 26 27 protected: 28 vector<CWnd*> m_tab_list; //保存tab控件每个子窗口的指针 29 vector<IconMgr::IconType> m_icon_list; 30 int m_last_tab_index{ -1 }; 31 public: 32 afx_msg void OnTcnSelchange(NMHDR *pNMHDR, LRESULT *pResult); 33 virtual void PreSubclassWindow(); 34 35 CRect m_tab_rect; 36 afx_msg void OnSize(UINT nType, int cx, int cy); 37 }; 38 39 40