CoolTabCtrl.h
上传用户:juying163
上传日期:2014-09-24
资源大小:5867k
文件大小:3k
源码类别:

GIS编程

开发平台:

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