CoolTabCtrl.h
上传用户:yffx2008
上传日期:2014-10-12
资源大小:12414k
文件大小:3k
源码类别:

交通/航空行业

开发平台:

Visual C++

  1. ////////////////////////////////////////////////////////////////
  2. // CoolTabCtrl.h : header file                                //
  3. //   //
  4. // Copyright 2001 WangJun   //
  5. // All Rights Reserved.   //
  6. //   //
  7. // Email: wangjun98@sohu.com   //
  8. // URL:   www.vckbase.com   //
  9. //   //
  10. // 1.0     2001/9/30   First release version.   //
  11. //   //
  12. ////////////////////////////////////////////////////////////////
  13. #if !defined(AFX_COOLTABCTRL_H__83DD41F0_25C9_417D_9353_777A80FAD1CF__INCLUDED_)
  14. #define AFX_COOLTABCTRL_H__83DD41F0_25C9_417D_9353_777A80FAD1CF__INCLUDED_
  15. #if _MSC_VER > 1000
  16. #pragma once
  17. #endif // _MSC_VER > 1000
  18. #define TCS_UP 0x0001 ///向上
  19. #define TCS_DOWN 0x0002 ///向下
  20. #define TCS_MONOSPACE 0x0004 ///等宽效果
  21. #define TCS_ANIMATE 0x0008 ///窗口拉动的动画效果
  22. #define TCS_MASK 0x000f ///掩码:所有类型值相"或",供程序内部使用
  23. /////////////////////////////////////////////////////////////////////////////
  24. // CCoolTabCtrl window
  25. class CCoolTabCtrl : public CWnd
  26. {
  27. public:
  28. class CPageItem
  29. {
  30. friend class CCoolTabCtrl;
  31. CWnd* m_pWnd; ///窗口,可以为NULL
  32. UINT m_nStyle; ///窗口类型,0:普通,1:对话框
  33. CString m_sText; ///文字
  34. HICON m_hIcon; ///图标
  35. public:
  36. CRect m_rect;
  37. public:
  38. UINT GetAreaWidth(CDC *pDC);
  39. void Draw(CDC *pDC,UINT nStyle,BOOL bActive);
  40. };
  41. DECLARE_DYNCREATE(CCoolTabCtrl)
  42. // Construction
  43. public:
  44. CCoolTabCtrl();
  45. // Attributes
  46. public:
  47. // Operations
  48. public:
  49. // Overrides
  50. // ClassWizard generated virtual function overrides
  51. //{{AFX_VIRTUAL(CCoolTabCtrl)
  52. //}}AFX_VIRTUAL
  53. // Implementation
  54. public:
  55. void SetStyleMonoSpace(BOOL bEnable = TRUE);
  56. void SetStyleDirection(int Direction); ///Direction取值:TCS_UP,TCS_DOWN
  57. void SetStyleAnimate(BOOL bEnable = TRUE); ///允许动画bEnable = TRUE,否则为FALSE
  58. void UpdateWindow();
  59. BOOL m_bEraseBkgnd;
  60. UINT GetStyle();
  61. void SetStyle(UINT style);
  62. void DrawFrame(CDC *pDC);
  63. void* GetPageItem(UINT nIndex);
  64. void SetActivePage(int nIndex);
  65. BOOL AddPage(CRuntimeClass* pClass,UINT nIDTemplate,LPCTSTR sText,UINT IconID = NULL);
  66. void AddPage(CWnd *pWnd,LPCTSTR sText,UINT IconID = NULL);
  67. void AutoSize();
  68. void GetClientRect(LPRECT lpRect );
  69. BOOL Create(UINT wStyle, const CRect & rect, CWnd * pParentWnd, UINT nID);
  70. virtual ~CCoolTabCtrl();
  71. // Generated message map functions
  72. protected:
  73. //{{AFX_MSG(CCoolTabCtrl)
  74. afx_msg void OnPaint();
  75. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  76. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  77. afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
  78. afx_msg void OnSize(UINT nType, int cx, int cy);
  79. afx_msg void OnTimer(UINT nIDEvent);
  80. //}}AFX_MSG
  81. DECLARE_MESSAGE_MAP()
  82. private:
  83. CFont m_font;
  84. int m_nActivePage;
  85. UINT m_nStyle;
  86. UINT m_nBorder;
  87. CPtrList m_PageList;
  88. };
  89. /////////////////////////////////////////////////////////////////////////////
  90. //{{AFX_INSERT_LOCATION}}
  91. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  92. #endif // !defined(AFX_COOLTABCTRL_H__83DD41F0_25C9_417D_9353_777A80FAD1CF__INCLUDED_)