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

对话框与窗口

开发平台:

Visual C++

  1. // XTColorPopup.h : interface for the CXTColorPopup 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(__XTCOLORPOPUP_H__)
  22. #define __XTCOLORPOPUP_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. class CXTPShadowManager;
  28. //===========================================================================
  29. // Summary:
  30. //     CXTColorPopup is a CXTColorSelectorCtrl derived class. It is used
  31. //     to create a CXTColorPopup window that will allow a user to select
  32. //     colors and add custom colors to a color list.
  33. //===========================================================================
  34. class _XTP_EXT_CLASS CXTColorPopup : public CXTColorSelectorCtrl
  35. {
  36. public:
  37. //-----------------------------------------------------------------------
  38. // Summary:
  39. //     Constructs a CXTColorPopup object.
  40. // Parameters:
  41. //     bAutoDelete - TRUE if the color picker window is to be self deleting.
  42. //     callerParam - Caller parameter; it will be reported back as an LPARAM of
  43. //     color popup notification messages.
  44. //-----------------------------------------------------------------------
  45. CXTColorPopup(BOOL bAutoDelete = FALSE, LPARAM callerParam = 0);
  46. //-----------------------------------------------------------------------
  47. // Summary:
  48. //     Destroys a CXTColorPopup object, handles cleanup and deallocation
  49. //-----------------------------------------------------------------------
  50. virtual ~CXTColorPopup();
  51. public:
  52. //-----------------------------------------------------------------------
  53. // Summary:
  54. //     This member function will add a color to the user defined color
  55. //     list.
  56. // Parameters:
  57. //     clrColor - An RGB value that represents the user defined color
  58. //                to be displayed in
  59. //     the recent color list.
  60. //-----------------------------------------------------------------------
  61. static void AddUserColor(COLORREF clrColor);
  62. // ---------------------------------------------------------------------------
  63. // Summary:
  64. //     Resets the recently used color list.
  65. // Remarks:
  66. //     Call this member function to reset the user defined color list. Calling
  67. //     this function will remove all user defined colors from the MRU
  68. //     list.
  69. // ---------------------------------------------------------------------------
  70. static void ResetUserColors();
  71. // -----------------------------------------------------------------------------
  72. // Summary:
  73. //     This member function handles the creation of the color popup
  74. //     window.
  75. // Parameters:
  76. //     rect -        A reference to a <i>CRect</i> object that represents the
  77. //                   size of the color popup window.
  78. //     pParentWnd -  Points to the parent window for the color popup.
  79. //     dwPopup -     Style for the popup window. See the Remarks section for a
  80. //                   complete list of available styles.
  81. //     clrColor -    An <i>RGB</i> value that represents the currently selected
  82. //                   color for the popup window.
  83. //     clrDefault -  Specifies the default color for the color popup. If the
  84. //                   current style includes CPS_NOFILL, this parameter is
  85. //                   ignored.
  86. // Remarks:
  87. //     Styles to be added or removed can be combined by using the bitwise
  88. //     OR (|) operator. It can be one or more of the following:
  89. //     * <b>CPS_XT_NOFILL</b> The color picker will display a No Fill
  90. //           button rather than the default Automatic Color button.
  91. //     * <b>CPS_XT_EXTENDED</b> The color picker will display 40
  92. //           extended colors rather than the default 16 colors.
  93. //     * <b>CPS_XT_MORECOLORS</b> The color picker will display a
  94. //           More Colors button which will display a CXTColorDialog.
  95. //     * <b>CPS_XT_SHOW3DSELECTION</b> Displays the color selection
  96. //           box with a 3D raised border in CXTColorDialog.
  97. //     * <b>CPS_XT_SHOWHEXVALUE</b> Displays the hex equivalent of
  98. //           the selected color.
  99. // Returns:
  100. //     TRUE if successful, otherwise returns FALSE.
  101. // See Also:
  102. //     CXTColorPicker::ModifyCPStyle, CXTColorSelectorCtrl::Create
  103. // -----------------------------------------------------------------------------
  104. virtual BOOL Create(CRect& rect, CWnd* pParentWnd, DWORD dwPopup, COLORREF clrColor, COLORREF clrDefault = CLR_DEFAULT);
  105. // ---------------------------------------------------------------------
  106. // Summary:
  107. //     This member function adds a window that picker notifications are
  108. //     sent to.
  109. // Parameters:
  110. //     hwndListener -  A handle to the listener window. Messages will be
  111. //                     sent to it.
  112. // ---------------------------------------------------------------------
  113. void AddListener(HWND hwndListener);
  114. // --------------------------------------------------------------------------
  115. // Summary:
  116. //     Enables or disables popup window shadow.
  117. // Parameters:
  118. //     bDisplayShadow -  Flag that tells if the shadow is to be displayed.
  119. // Remarks:
  120. //     This member function enables or disables the drawing of popup shadows.
  121. //     Call this function after instantiating the color popup as a part
  122. //     of an object's initialization. Do not call it after popup
  123. //     creation because doing so may cause unpredictable results.
  124. // --------------------------------------------------------------------------
  125. void DisplayShadow(BOOL bDisplayShadow = TRUE);
  126. protected:
  127. //-----------------------------------------------------------------------
  128. // Summary:
  129. //     This member function will finish the selection process for the color
  130. //     box or button in the color popup window.
  131. // Parameters:
  132. //     nCurSel - Current index of the selected color box or button
  133. //               in the color popup window.
  134. //-----------------------------------------------------------------------
  135. virtual void EndSelection(int nCurSel);
  136. protected:
  137. //{{AFX_CODEJOCK_PRIVATE
  138. DECLARE_MESSAGE_MAP()
  139. //{{AFX_VIRTUAL(CXTColorPopup)
  140. virtual void PostNcDestroy();
  141. //}}AFX_VIRTUAL
  142. //{{AFX_MSG(CXTColorPopup)
  143. afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
  144. afx_msg void OnDestroy();
  145. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  146. afx_msg void OnPaint();
  147. afx_msg void OnKillFocus(CWnd* pNewWnd);
  148. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  149. afx_msg void OnNcPaint();
  150. afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp);
  151. //}}AFX_MSG
  152. //}}AFX_CODEJOCK_PRIVATE
  153. private:
  154. BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  155. protected:
  156. BOOL  m_bAutoDelete;        // TRUE if the popup window is to be self deleting.
  157. BOOL  m_bDisplayShadow;     // TRUE if the popup window will render its shadow.
  158. CRect m_rcExclude;          // Area to exclude from shadow display.
  159. const LPARAM m_callerParam; // Caller parameter that will be reported back as an LPARAM of all notification messages.
  160. CXTPShadowManager* m_pShadowManager;
  161. };
  162. //////////////////////////////////////////////////////////////////////
  163. AFX_INLINE  void CXTColorPopup::AddUserColor(COLORREF clrColor) {
  164. m_arUserDefColors.Add(clrColor);
  165. }
  166. AFX_INLINE BOOL CXTColorPopup::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
  167. return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  168. }
  169. AFX_INLINE void CXTColorPopup::ResetUserColors() {
  170. m_arUserDefColors.RemoveAll();
  171. }
  172. AFX_INLINE void CXTColorPopup::DisplayShadow(BOOL bDisplayShadow/* = TRUE*/) {
  173. m_bDisplayShadow = bDisplayShadow;
  174. }
  175. #endif //#if !defined(__XTCOLORPOPUP_H__)