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

对话框与窗口

开发平台:

Visual C++

  1. // XTColorDialog.h : header file
  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(__XTCOLORSHEET_H__)
  22. #define __XTCOLORSHEET_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. //===========================================================================
  28. // Summary:
  29. //     CXTColorDialog is a CPropertySheet derived class.
  30. //     It is an Office(tm) style color dialog and can be used
  31. //     as a drop in replacement for the MFC CColorDialog API.
  32. //===========================================================================
  33. class _XTP_EXT_CLASS CXTColorDialog : public CPropertySheet
  34. {
  35. DECLARE_DYNAMIC(CXTColorDialog)
  36. public:
  37. // ---------------------------------------------------------------------------------
  38. // Summary:
  39. //     Constructs a CXTColorDialog object
  40. // Parameters:
  41. //     clrNew -      An RGB value that represents the new color selection.
  42. //     clrCurrent -  An RGB value that represents the default color
  43. //                   selection.
  44. //     dwFlags -     Style for color dialog. See the Remarks section for available styles.
  45. //     pWndParent -  A pointer to the dialog box's parent or owner window.
  46. // Remarks:
  47. //     Styles to be added or removed can be combined by using the bitwise
  48. //     OR (|) operator. It can be one or more of the following:
  49. //     * <b>CPS_XT_SHOW3DSELECTION</b> Displays the color selection
  50. //       box with a 3D raised border.
  51. //     * <b>CPS_XT_SHOWHEXVALUE</b> Displays the hex equivalent of the
  52. //       selected color.
  53. // See Also:
  54. //     CXTColorPopup::Create, CXTColorSelectorCtrl::Create,
  55. //     CXTColorPicker::ModifyCPStyle
  56. // ---------------------------------------------------------------------------------
  57. CXTColorDialog(COLORREF clrNew, COLORREF clrCurrent, DWORD dwFlags = 0L, CWnd* pWndParent = NULL);
  58. //-----------------------------------------------------------------------
  59. // Summary:
  60. //     Destroys a CXTColorDialog object, handles cleanup and deallocation
  61. //-----------------------------------------------------------------------
  62. virtual ~CXTColorDialog();
  63. public:
  64. // -------------------------------------------------------------------
  65. // Summary:
  66. //     Sets the active color for the dialog.
  67. // Parameters:
  68. //     clr -      An RGB value that represents the color.
  69. //     bNotify -  TRUE to notify tab pages of a color change.
  70. //
  71. // Remarks:
  72. //     Call this member function to set the current color selection to
  73. //     the color value specified in <i>'clr'</i>. The dialog box will
  74. //     automatically update the user's selection based on the value of
  75. //     the <i>'clr'</i> parameter.
  76. // -------------------------------------------------------------------
  77. void SetNewColor(COLORREF clr, BOOL bNotify = TRUE);
  78. // ------------------------------------------------------------------
  79. // Summary:
  80. //     Call this function to set the new color selection to the color
  81. //     value specified in 'clr'.
  82. // Parameters:
  83. //     clr -  An RGB value that represents the color.
  84. // ------------------------------------------------------------------
  85. void SetCurrentColor(COLORREF clr);
  86. //-----------------------------------------------------------------------
  87. // Summary:
  88. //     Call this member function to retrieve the information about
  89. //     the current color.
  90. // Returns:
  91. //     A COLORREF value that contains the RGB information for
  92. //     the current color specified when the dialog was instantiated.
  93. //-----------------------------------------------------------------------
  94. COLORREF GetCurrentColor();
  95. //-----------------------------------------------------------------------
  96. // Summary:
  97. //     Call this member function to retrieve the information about
  98. //     the color that the user selected.
  99. // Returns:
  100. //     A COLORREF value that contains the RGB information
  101. //     for the new color selected in the color dialog box.
  102. //-----------------------------------------------------------------------
  103. COLORREF GetColor();
  104. // -------------------------------------------------------------
  105. // Summary:
  106. //     Call this member function to copy the string specified by
  107. //     'strText' to the Windows clipboard.
  108. // Parameters:
  109. //     strText -  A NULL terminated string.
  110. // Returns:
  111. //     TRUE if successful, otherwise returns FALSE.
  112. // -------------------------------------------------------------
  113. BOOL CopyToClipboard(const CString& strText);
  114. //-----------------------------------------------------------------------
  115. // Summary:
  116. //     This member function returns a CString object that represents the
  117. //     HEX conversion for the specified RGB color.
  118. // Parameters:
  119. //     clr - An RGB value that represents the color.
  120. // Returns:
  121. //     A CString object.
  122. //-----------------------------------------------------------------------
  123. static CString RGBtoHex(COLORREF clr);
  124. // ------------------------------------------------------------------------
  125. // Summary:
  126. //     Calculates the size of the dialog's tab control.
  127. // Remarks:
  128. //     This function is used to calculate the size of the dialog's tab
  129. //     control, the first tab item, the size of the OK button, and the size
  130. //     of the cancel button. Then, resize the tab control to fit on the
  131. //     dialog. Also, reposition the OK and Cancel buttons. Next, reposition
  132. //     the Hex-Display. Finally, resize the property sheet.
  133. // ------------------------------------------------------------------------
  134. virtual void CalculateRects();
  135. protected:
  136. //{{AFX_CODEJOCK_PRIVATE
  137. DECLARE_MESSAGE_MAP()
  138. //{{AFX_VIRTUAL(CXTColorDialog)
  139. virtual BOOL OnInitDialog();
  140. void AddPage(CPropertyPage* pPage);
  141. //}}AFX_VIRTUAL
  142. //{{AFX_MSG(CXTColorDialog)
  143. afx_msg void OnPaint();
  144. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  145. //}}AFX_MSG
  146. //}}AFX_CODEJOCK_PRIVATE
  147. protected:
  148. DWORD    m_dwStyle;    // Styles for the dialog.
  149. CEdit    m_editHex;    // Edit window to display the color hex value.
  150. CRect    m_rcNew;      // Size of the rectangle that represents the new color.
  151. CRect    m_rcCurrent;  // Size of the rectangle that represents the current color.
  152. COLORREF m_clrNew;     // A COLORREF value that contains the RGB information for the new color.
  153. COLORREF m_clrCurrent; // A COLORREF value that contains the RGB information for the current color.
  154. };
  155. //////////////////////////////////////////////////////////////////////
  156. AFX_INLINE COLORREF CXTColorDialog::GetCurrentColor() {
  157. return m_clrCurrent;
  158. }
  159. AFX_INLINE COLORREF CXTColorDialog::GetColor() {
  160. return m_clrNew;
  161. }
  162. /*
  163. //===========================================================================
  164. // Summary:
  165. //     CXTThemePropertyPage is a CPropertyPage derived class.
  166. //     It is used as a base class
  167. //     for drawing Windows XP themed property pages.
  168. //===========================================================================
  169. class _XTP_EXT_CLASS CXTThemePropertyPage : public CPropertyPage
  170. {
  171. DECLARE_DYNCREATE(CXTThemePropertyPage)
  172. public:
  173. //-----------------------------------------------------------------------
  174. // Summary:
  175. //     Constructs a CXTThemePropertyPage object
  176. // Parameters:
  177. //     pParentSheet - Points to the parent property sheet.
  178. //     nIDTemplate  - Dialog resource id.
  179. //     nIDCaption   - Dialog caption string id.
  180. //-----------------------------------------------------------------------
  181. CXTThemePropertyPage(CXTColorDialog* pParentSheet = 0, UINT nIDTemplate = 0, UINT nIDCaption = 0);
  182. //-----------------------------------------------------------------------
  183. // Summary:
  184. //     Destroys a CXTThemePropertyPage object, handles cleanup and
  185. //     deallocation
  186. //-----------------------------------------------------------------------
  187. virtual ~CXTThemePropertyPage();
  188. protected:
  189. //{{AFX_CODEJOCK_PRIVATE
  190. DECLARE_MESSAGE_MAP()
  191. //{{AFX_VIRTUAL(CXTColorPageStandard)
  192. //}}AFX_VIRTUAL
  193. //{{AFX_MSG(CXTColorPageStandard)
  194. //}}AFX_CODEJOCK_PRIVATE
  195. protected:
  196. CXTColorDialog*     m_pParentSheet; // Points to the parent property sheet
  197. };*/
  198. const DWORD CPS_XT_SHOWHEXVALUE    = 0x0020;  //<ALIAS CXTColorDialog::CXTColorDialog@COLORREF@COLORREF@DWORD@CWnd*>
  199. const DWORD CPS_XT_SHOW3DSELECTION = 0x0040;  //<ALIAS CXTColorDialog::CXTColorDialog@COLORREF@COLORREF@DWORD@CWnd*>
  200. #endif // !defined(__XTCOLORSHEET_H__)