XTListBox.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:4k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTListBox.h interface for the CXTListBox class.
  2. //
  3. // This file is a part of the XTREME CONTROLS MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTLISTBOX_H__)
  22. #define __XTLISTBOX_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. enum XTListBoxStyle
  28. {
  29. xtListBoxStandard,
  30. xtListBoxOfficeXP,
  31. xtListBoxOffice2007,
  32. };
  33. //===========================================================================
  34. // Summary:
  35. //     CXTListBox is a CListBox derived class. CXTListBox extends the standard
  36. //     list box control to enable flicker free drawing.
  37. //===========================================================================
  38. class _XTP_EXT_CLASS CXTListBox : public CListBox
  39. {
  40. DECLARE_DYNAMIC(CXTListBox)
  41. public:
  42. //-----------------------------------------------------------------------
  43. // Summary:
  44. //     Constructs a CXTListBox object
  45. //-----------------------------------------------------------------------
  46. CXTListBox();
  47. //-----------------------------------------------------------------------
  48. // Summary:
  49. //     Destroys a CXTListBox object, handles cleanup and deallocation
  50. //-----------------------------------------------------------------------
  51. virtual ~CXTListBox();
  52. public:
  53. //-----------------------------------------------------------------------
  54. // Summary:
  55. //     Call this member function to initialize the list box.  This method
  56. //     should be called directly after creating or sub-classing the control.
  57. // Parameters:
  58. //     bAutoFont - True to enable automatic font initialization.
  59. //-----------------------------------------------------------------------
  60. virtual void Initialize(bool bAutoFont = true);
  61. //-----------------------------------------------------------------------
  62. // Summary:
  63. //     This method is called to get background color of listbox
  64. //-----------------------------------------------------------------------
  65. virtual COLORREF GetBackColor();
  66. void SetListStyle(XTListBoxStyle style);
  67. XTListBoxStyle GetListStyle() const;
  68. protected:
  69. //{{AFX_CODEJOCK_PRIVATE
  70. DECLARE_MESSAGE_MAP()
  71. bool m_bPreSubclassInit;
  72. //{{AFX_VIRTUAL(CXTListBox)
  73. virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  74. virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
  75. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  76. virtual void PreSubclassWindow();
  77. virtual bool Init();
  78. //}}AFX_VIRTUAL
  79. //{{AFX_MSG(CXTListBox)
  80. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  81. afx_msg void OnPaint();
  82. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  83. afx_msg LRESULT OnPrintClient(WPARAM wParam, LPARAM lParam);
  84. afx_msg void OnMouseLeave();
  85. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  86. afx_msg void OnSetFocus(CWnd* pOldWnd);
  87. afx_msg void OnKillFocus(CWnd* pNewWnd);
  88. //}}AFX_MSG
  89. //}}AFX_CODEJOCK_PRIVATE
  90. protected:
  91. XTListBoxStyle m_nStyle;    // Listbox style;
  92. int m_nItemHeight;
  93. int m_nTextPadding;
  94. int m_nHotItem;
  95. };
  96. AFX_INLINE void CXTListBox::SetListStyle(XTListBoxStyle style) {
  97. m_nStyle = style;
  98. if (m_hWnd) Invalidate(FALSE);
  99. }
  100. AFX_INLINE XTListBoxStyle CXTListBox::GetListStyle() const {
  101. return m_nStyle;
  102. }
  103. #endif // #if !defined(__XTLISTBOX_H__)