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

对话框与窗口

开发平台:

Visual C++

  1. // XTPPropertyGridInplaceList.h interface for the CXTPPropertyGridInplaceList class.
  2. //
  3. // This file is a part of the XTREME PROPERTYGRID 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(__XTPPROPERTYGRIDINPLACELIST_H__)
  22. #define __XTPPROPERTYGRIDINPLACELIST_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. // class forwards.
  28. class CXTPPropertyGridView;
  29. class CXTPPropertyGridItem;
  30. //===========================================================================
  31. // Summary:
  32. //     CXTPPropertyGridInplaceList is a CListBox derived class.
  33. //     It is an internal class used by Property Grid control.
  34. //===========================================================================
  35. class _XTP_EXT_CLASS CXTPPropertyGridInplaceList : public CListBox
  36. {
  37. DECLARE_DYNAMIC(CXTPPropertyGridInplaceList)
  38. public:
  39. //-----------------------------------------------------------------------
  40. // Summary:
  41. //     Constructs a CXTPPropertyGridInplaceList object
  42. //-----------------------------------------------------------------------
  43. CXTPPropertyGridInplaceList();
  44. //-----------------------------------------------------------------------
  45. // Summary:
  46. //     Destroys a CXTPPropertyGridInplaceList object, handles cleanup
  47. //     and deallocation.
  48. //-----------------------------------------------------------------------
  49. virtual ~CXTPPropertyGridInplaceList();
  50. //-----------------------------------------------------------------------
  51. // Summary:
  52. //     Call this method to create in-place list control.
  53. // Parameters:
  54. //     pItem - Parent item of the list.
  55. //     rect  -  Specifies the size and position of the item.
  56. //-----------------------------------------------------------------------
  57. virtual void Create(CXTPPropertyGridItem* pItem, CRect rect);
  58. //-----------------------------------------------------------------------
  59. // Summary:
  60. //     This method is called when the parent item is destroyed.
  61. //-----------------------------------------------------------------------
  62. virtual void DestroyItem();
  63. private:
  64. CXTPPropertyGridItem* m_pItem;
  65. protected:
  66. //-----------------------------------------------------------------------
  67. // Summary:
  68. //     Call this method to cancel user changes.
  69. //-----------------------------------------------------------------------
  70. virtual void Cancel();
  71. //-----------------------------------------------------------------------
  72. // Summary:
  73. //     Call this method to apply user changes.
  74. //-----------------------------------------------------------------------
  75. virtual void Apply();
  76. protected:
  77. //{{AFX_CODEJOCK_PRIVATE
  78. DECLARE_MESSAGE_MAP()
  79. //{{AFX_VIRTUAL(CXTPPropertyGridInplaceList)
  80. void PostNcDestroy();
  81. void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  82. void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
  83. //}}AFX_VIRTUAL
  84. //{{AFX_MSG(CXTPPropertyGridInplaceList)
  85. afx_msg void OnKillFocus(CWnd* pNewWnd);
  86. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  87. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  88. afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  89. afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
  90. //}}AFX_MSG
  91. //}}AFX_CODEJOCK_PRIVATE
  92. private:
  93. BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  94. BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
  95. friend class CXTPPropertyGridItem;
  96. };
  97. //===========================================================================
  98. // Summary:
  99. //     CXTPPropertyGridInplaceMultilineEdit is a CEdit derived class.
  100. //     It is an internal class used by Property Grid control.
  101. //===========================================================================
  102. class _XTP_EXT_CLASS CXTPPropertyGridInplaceMultilineEdit : public CEdit
  103. {
  104. DECLARE_DYNAMIC(CXTPPropertyGridInplaceMultilineEdit)
  105. public:
  106. //-----------------------------------------------------------------------
  107. // Summary:
  108. //     Constructs a CXTPPropertyGridInplaceList object
  109. //-----------------------------------------------------------------------
  110. CXTPPropertyGridInplaceMultilineEdit();
  111. //-----------------------------------------------------------------------
  112. // Summary:
  113. //     Destroys a CXTPPropertyGridInplaceList object, handles cleanup
  114. //     and deallocation.
  115. //-----------------------------------------------------------------------
  116. virtual ~CXTPPropertyGridInplaceMultilineEdit();
  117. //-----------------------------------------------------------------------
  118. // Summary:
  119. //     Call this method to create in-place list control.
  120. // Parameters:
  121. //     pItem - Parent item of the list.
  122. //     rect  -  Specifies the size and position of the item.
  123. //-----------------------------------------------------------------------
  124. virtual void Create(CXTPPropertyGridItem* pItem, CRect rect);
  125. private:
  126. CXTPPropertyGridItem* m_pItem;
  127. protected:
  128. //-----------------------------------------------------------------------
  129. // Summary:
  130. //     Call this method to cancel user changes.
  131. //-----------------------------------------------------------------------
  132. virtual void Cancel();
  133. //-----------------------------------------------------------------------
  134. // Summary:
  135. //     Call this method to apply user changes.
  136. //-----------------------------------------------------------------------
  137. virtual void Apply();
  138. protected:
  139. //{{AFX_CODEJOCK_PRIVATE
  140. DECLARE_MESSAGE_MAP()
  141. //{{AFX_VIRTUAL(CXTPPropertyGridInplaceList)
  142. void PostNcDestroy();
  143. //}}AFX_VIRTUAL
  144. //{{AFX_MSG(CXTPPropertyGridInplaceList)
  145. afx_msg void OnKillFocus(CWnd* pNewWnd);
  146. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  147. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  148. afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  149. afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
  150. //}}AFX_MSG
  151. //}}AFX_CODEJOCK_PRIVATE
  152. private:
  153. BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  154. BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
  155. friend class CXTPPropertyGridItem;
  156. };
  157. //////////////////////////////////////////////////////////////////////////
  158. AFX_INLINE BOOL CXTPPropertyGridInplaceList::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
  159. return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  160. }
  161. AFX_INLINE BOOL CXTPPropertyGridInplaceList::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID) {
  162. return CListBox::Create(dwStyle, rect, pParentWnd, nID);
  163. }
  164. AFX_INLINE BOOL CXTPPropertyGridInplaceMultilineEdit::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
  165. return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  166. }
  167. AFX_INLINE BOOL CXTPPropertyGridInplaceMultilineEdit::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID) {
  168. return CEdit::Create(dwStyle, rect, pParentWnd, nID);
  169. }
  170. #endif // #if !defined(__XTPPROPERTYGRIDINPLACELIST_H__)