ExtCheckListWnd.h
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:4k
源码类别:

界面编程

开发平台:

Visual C++

  1. // This is part of the Professional User Interface Suite library.
  2. // Copyright (C) 2001-2009 FOSS Software, Inc.
  3. // All rights reserved.
  4. //
  5. // http://www.prof-uis.com
  6. // mailto:support@prof-uis.com
  7. //
  8. // This source code can be used, modified and redistributed
  9. // under the terms of the license agreement that is included
  10. // in the Professional User Interface Suite package.
  11. //
  12. // Warranties and Disclaimers:
  13. // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND
  14. // INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY,
  15. // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
  16. // IN NO EVENT WILL FOSS SOFTWARE INC. BE LIABLE FOR ANY DIRECT,
  17. // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES,
  18. // INCLUDING DAMAGES FOR LOSS OF PROFITS, LOSS OR INACCURACY OF DATA,
  19. // INCURRED BY ANY PERSON FROM SUCH PERSON'S USAGE OF THIS SOFTWARE
  20. // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  21. #if (!defined __EXT_CHECK_LIST_H)
  22. #define __EXT_CHECK_LIST_H
  23. #if (!defined __EXT_MFC_NO_CHECK_LIST)
  24. #if (!defined __EXT_MFC_DEF_H)
  25. #include <ExtMfcDef.h>
  26. #endif // __EXT_MFC_DEF_H
  27. #if _MSC_VER > 1000
  28. #pragma once
  29. #endif // _MSC_VER > 1000
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CExtCheckListWnd window
  32. class __PROF_UIS_API CExtCheckListWnd
  33. : public CListBox
  34. , public CExtPmBridge
  35. {
  36. // Construction
  37. public:
  38. DECLARE_DYNAMIC( CExtCheckListWnd )
  39. DECLARE_CExtPmBridge_MEMBERS( CExtCheckListWnd );
  40. bool m_bUsePM:1;
  41. CExtCheckListWnd();
  42. // Attributes
  43. public:
  44. struct EXT_ITEM_DATA
  45. {
  46. public:
  47. INT m_nCheck;
  48. BOOL m_bEnabled;
  49. DWORD m_dwUserData;
  50. EXT_ITEM_DATA()
  51. {
  52. m_nCheck = 0;
  53. m_bEnabled = TRUE;
  54. m_dwUserData = 0;
  55. };
  56. };
  57. void SetCheckStyle( 
  58. DWORD nStyle 
  59. );
  60. DWORD GetCheckStyle() const;
  61. void SetCheck(
  62. INT nIndex, 
  63. INT nCheck
  64. );
  65. INT GetCheck(
  66. INT nIndex
  67. );
  68. void Enable(
  69. INT nIndex, 
  70. BOOL bEnabled = TRUE
  71. );
  72. BOOL IsEnabled(
  73. INT nIndex
  74. );
  75. // Operations
  76. public:
  77. // Overrides
  78. // ClassWizard generated virtual function overrides
  79. //{{AFX_VIRTUAL(CExtCheckListWnd)
  80. public:
  81. virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);
  82. virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMIS);
  83. virtual int CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct);
  84. virtual void DeleteItem(LPDELETEITEMSTRUCT lpDeleteItemStruct);
  85. protected:
  86. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  87. virtual void PreSubclassWindow();
  88. //}}AFX_VIRTUAL
  89. // Implementation 
  90. public: 
  91. virtual ~CExtCheckListWnd();
  92. virtual HFONT OnQueryItemFont( 
  93. INT nIndex 
  94. ) const;
  95. virtual CRect OnQueryItemMargins( 
  96. INT nIndex 
  97. ) const;
  98. virtual CRect OnQueryItemCheckMargins( 
  99. INT nIndex 
  100. ) const;
  101. virtual CSize OnQueryItemCheckSize( 
  102. CDC & dc, 
  103. INT nIndex 
  104. );
  105. virtual void OnPaintItemCheck(
  106. CDC & dc,
  107. const RECT & rcCheck,
  108. INT nIndex
  109. );
  110. protected:
  111. DWORD m_nStyle;
  112. public: 
  113. void SetSelectionCheck( 
  114.    INT nCheck 
  115.    );
  116. INT CheckBoxFromPoint(
  117. CPoint point, 
  118. BOOL & bInCheck
  119. );
  120. // Generated message map functions
  121. protected:
  122. //{{AFX_MSG(CExtCheckListWnd)
  123. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  124. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  125. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  126. afx_msg LRESULT OnLBAddString(WPARAM wParam, LPARAM lParam);
  127. afx_msg LRESULT OnLBFindString(WPARAM wParam, LPARAM lParam);
  128. afx_msg LRESULT OnLBFindStringExact(WPARAM wParam, LPARAM lParam);
  129. afx_msg LRESULT OnLBGetItemData(WPARAM wParam, LPARAM lParam);
  130. afx_msg LRESULT OnLBGetText(WPARAM wParam, LPARAM lParam);
  131. afx_msg LRESULT OnLBInsertString(WPARAM wParam, LPARAM lParam);
  132. afx_msg LRESULT OnLBSelectString(WPARAM wParam, LPARAM lParam);
  133. afx_msg LRESULT OnLBSetItemData(WPARAM wParam, LPARAM lParam);
  134. //}}AFX_MSG
  135. DECLARE_MESSAGE_MAP()
  136. };
  137. /////////////////////////////////////////////////////////////////////////////
  138. //{{AFX_INSERT_LOCATION}}
  139. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  140. #endif // (!defined __EXT_MFC_NO_CHECK_LIST)
  141. #endif // (!defined __EXT_CHECK_LIST_H)