www.pudn.com > 酒店管理系统源代码.rar > CoolTabCtrl.h
/*#################################################################### Filename: cooltabctrl.h ---------------------------------------------------- Remarks: ... ---------------------------------------------------- ####################################################################*/ #if !defined(_ANYOU_COOL_TABCTRL_H) #define _ANYOU_COOL_TABCTRL_H #if _MSC_VER > 1000 #pragma once #endif #include#define TABMODE_NONE 0 #define TABMODE_GROUP 1 #define TABMODE_TOPTAB 2 #define TABMODE_BOTTOMTAB 3 #define TABMODE_LEFTAB 4 #define TABMODE_RIGHTTAB 5 /*#################################################################### ------------------------------------------------ class CTabPageItem ------------------------------------------------ ####################################################################*/ class CTabPageItem { friend class CCoolTabCtrl; private: CWnd* m_pWnd; //窗口,可以为NULL CCoolTabCtrl* m_pParentWnd; UINT m_dwState; //窗口类型,0:普通,1:对话框 CString m_strText; //标签 HICON m_hIcon; //图标 CRect m_rect; //矩形区域 int m_nNumber; //序号 public: ~CTabPageItem(); void OnDraw(CDC *pDC, int nState); void Hide(); CTabPageItem(CCoolTabCtrl* pParentWnd, CWnd* pWnd, const CString &strText, int nNumber); void SetRect(const CRect& rect); void Expend(); void SetIcon(HICON hicon); protected: CRect m_rcLabel; }; /*#################################################################### ------------------------------------------------ class CCoolTabCtrl ------------------------------------------------ ####################################################################*/ class CCoolTabCtrl : public CWnd { friend class CTabPageItem; // Construction-------------------------------------- DECLARE_DYNCREATE(CCoolTabCtrl) public: CCoolTabCtrl(); virtual ~CCoolTabCtrl(); BOOL Create(const CRect &rect, CWnd *pParentWnd, UINT dwStyle = WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, UINT dwCtrlStyle = 0, UINT nID = 0); // Attributes----------------------------------------- public: void SetActivePage(int nindex); void SetBorderStyle(DWORD dwStyle); void SetCtrlStyle(DWORD dwStyle); int GetActivePage() { return m_nActivePage;} // Operations----------------------------------------- public: BOOL AddPage(CWnd* pwnd, LPCTSTR strText, UINT IconID); BOOL AddPage(CRuntimeClass* pClass,UINT nIDTemplate, LPCTSTR strText, UINT IconID); // Overrides------------------------------------------ // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CCoolTabCtrl) //}}AFX_VIRTUAL // Implementation------------------------------------- public: void DrawBoder(CDC* pDC, CRect rect); CWnd* GetPage(int number); void SetMode(int nMode); void AutoSize(); BOOL PlayResource(WORD wResourceID);//点击非客户区播放声音 public: // static bool m_bDefaultPage;//是否为缺省的页面 // Generated message map functions--------------------- protected: int m_nMode; //{{AFX_MSG(CCoolTabCtrl) afx_msg void OnPaint(); afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg void OnNcPaint(); afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp); afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos); afx_msg UINT OnNcHitTest(CPoint point); afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: int m_nHotItem; DWORD m_dwBorderStyle; int m_nActivePage; CFont m_fontWnd; DWORD m_dwStyle; CArray m_aTabPage; }; //{{AFX_INSERT_LOCATION}} #endif // !defined(_ANYOU_COOLTABCTRL_H)