XHeaderCtrl.h
上传用户:dfzycw
上传日期:2010-01-10
资源大小:66k
文件大小:2k
源码类别:

进程与线程

开发平台:

Visual C++

  1. // XHeaderCtrl.h
  2. ///////////////////////////////////////////////////////////////////////////////
  3. #ifndef XHEADERCTRL_H
  4. #define XHEADERCTRL_H
  5. #include <tchar.h>
  6. #include "MemDC.h"
  7. #define FLATHEADER_TEXT_MAX 80
  8. #define XHEADERCTRL_NO_IMAGE 0
  9. #define XHEADERCTRL_UNCHECKED_IMAGE 1
  10. #define XHEADERCTRL_CHECKED_IMAGE 2
  11. ///////////////////////////////////////////////////////////////////////////////
  12. // CXHeaderCtrl window
  13. #define FH_PROPERTY_SPACING 1
  14. #define FH_PROPERTY_ARROW 2
  15. #define FH_PROPERTY_STATICBORDER 3
  16. #define FH_PROPERTY_DONTDROPCURSOR 4
  17. #define FH_PROPERTY_DROPTARGET 5
  18. class CXHeaderCtrl : public CHeaderCtrl
  19. {
  20.     DECLARE_DYNCREATE(CXHeaderCtrl)
  21. // Construction
  22. public:
  23. CXHeaderCtrl();
  24. virtual ~CXHeaderCtrl();
  25. // Attributes
  26. public:
  27. BOOL ModifyProperty(WPARAM wParam, LPARAM lParam);
  28. int GetSpacing() { return m_iSpacing; }
  29. void SetSpacing(int nSpacing) { m_iSpacing = nSpacing; }
  30. // Overrides
  31. public:
  32. virtual void DrawItem(LPDRAWITEMSTRUCT);
  33. virtual void DrawItem(CDC* pDC, CRect rect, LPHDITEM lphdi);
  34. // ClassWizard generated virtual function overrides
  35. //{{AFX_VIRTUAL(CXHeaderCtrl)
  36. //}}AFX_VIRTUAL
  37. // Implementation
  38. protected:
  39. BOOL m_bDoubleBuffer;
  40. int m_iSpacing;
  41. SIZE m_sizeImage;
  42. SIZE m_sizeArrow;
  43. BOOL m_bStaticBorder;
  44. UINT m_nDontDropCursor;
  45. BOOL m_bResizing;
  46. UINT m_nClickFlags;
  47. CPoint m_ptClickPoint;
  48. COLORREF m_cr3DHighLight;
  49. COLORREF m_cr3DShadow;
  50. COLORREF m_cr3DFace;
  51. COLORREF m_crBtnText;
  52. void DrawCtrl(CDC* pDC);
  53. int DrawImage(CDC* pDC, CRect rect, LPHDITEM hdi, BOOL bRight);
  54. int DrawBitmap(CDC* pDC, CRect rect, LPHDITEM hdi, CBitmap* pBitmap, 
  55. BITMAP* pBitmapInfo, BOOL bRight);
  56. int DrawText (CDC* pDC, CRect rect, LPHDITEM lphdi);
  57. // Generated message map functions
  58. protected:
  59. //{{AFX_MSG(CXHeaderCtrl)
  60. afx_msg LRESULT OnDeleteItem(WPARAM wparam, LPARAM lparam);
  61. afx_msg LRESULT OnInsertItem(WPARAM wparam, LPARAM lparam);
  62. afx_msg LRESULT OnLayout(WPARAM wparam, LPARAM lparam);
  63. afx_msg LRESULT OnSetImageList(WPARAM wparam, LPARAM lparam);
  64. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  65. afx_msg void OnPaint();
  66. afx_msg void OnSysColorChange();
  67. //}}AFX_MSG
  68. DECLARE_MESSAGE_MAP()
  69. };
  70. ///////////////////////////////////////////////////////////////////////////////
  71. //{{AFX_INSERT_LOCATION}}
  72. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  73. #endif //XHEADERCTRL_H