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

Internet/IE编程

开发平台:

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. void SetPageStyle(UINT nStyle)
  39. {
  40. m_nStyle = nStyle;
  41. }
  42. UINT GetAreaWidth(CDC *pDC);
  43. void Draw(CDC *pDC,UINT nStyle,BOOL bActive);
  44. };
  45. DECLARE_DYNCREATE(CCoolTabCtrl)
  46. // Construction
  47. public:
  48. CCoolTabCtrl();
  49. // Attributes
  50. public:
  51. // Operations
  52. public:
  53. // Overrides
  54. // ClassWizard generated virtual function overrides
  55. //{{AFX_VIRTUAL(CCoolTabCtrl)
  56. //}}AFX_VIRTUAL
  57. // Implementation
  58. public:
  59. CWnd* GetPagePoint(UINT nIndex);
  60. void SetStyleMonoSpace(BOOL bEnable = TRUE);
  61. void SetStyleDirection(int Direction); ///Direction取值:TCS_UP,TCS_DOWN
  62. void SetStyleAnimate(BOOL bEnable = TRUE); ///允许动画bEnable = TRUE,否则为FALSE
  63. void UpdateWindow();
  64. BOOL m_bEraseBkgnd;
  65. UINT GetStyle();
  66. void SetStyle(UINT style);
  67. void DrawFrame(CDC *pDC);
  68. void* GetPageItem(UINT nIndex);
  69. void SetActivePage(int nIndex);
  70. BOOL AddPage(CRuntimeClass* pClass,UINT nIDTemplate,LPCTSTR sText,UINT IconID = NULL);
  71. CPageItem* AddPage(CWnd *pWnd,LPCTSTR sText,UINT IconID = NULL);
  72. void AutoSize();
  73. void GetClientRect(LPRECT lpRect );
  74. BOOL Create(UINT wStyle, const CRect & rect, CWnd * pParentWnd, UINT nID);
  75. virtual ~CCoolTabCtrl();
  76. // Generated message map functions
  77. protected:
  78. //{{AFX_MSG(CCoolTabCtrl)
  79. afx_msg void OnPaint();
  80. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  81. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  82. afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
  83. afx_msg void OnSize(UINT nType, int cx, int cy);
  84. afx_msg void OnTimer(UINT nIDEvent);
  85. afx_msg BOOL OnNotify( WPARAM wParam, LPARAM lParam, LRESULT* pResult );
  86. afx_msg int  OnCreate(LPCREATESTRUCT lpCreateStruct);
  87. afx_msg void OnDestroy();
  88. //}}AFX_MSG
  89. DECLARE_MESSAGE_MAP()
  90. private:
  91. CFont m_font;
  92. int m_nActivePage;
  93. UINT m_nStyle;
  94. UINT m_nBorder;
  95. CPtrList m_PageList;
  96. };
  97. /////////////////////////////////////////////////////////////////////////////
  98. //{{AFX_INSERT_LOCATION}}
  99. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  100. #endif // !defined(AFX_COOLTABCTRL_H__83DD41F0_25C9_417D_9353_777A80FAD1CF__INCLUDED_)