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

对话框与窗口

开发平台:

Visual C++

  1. // XTPSyntaxEditColorComboBox.h : header file
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO 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 SYNTAX EDIT 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(__XTPSYNTAXEDITCOLORCOMBOBOX_H__)
  22. #define __XTPSYNTAXEDITCOLORCOMBOBOX_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. //===========================================================================
  28. // Summary:
  29. //      This class allow edit colors using combobox control.
  30. //      It display color name and draw rectangle for each item using item color.
  31. //===========================================================================
  32. class _XTP_EXT_CLASS CXTPSyntaxEditColorComboBox : public CComboBox
  33. {
  34. DECLARE_DYNAMIC(CXTPSyntaxEditColorComboBox)
  35. public:
  36. // -------------------------------------------------------------------
  37. // Summary:
  38. //     Standard object constructor.
  39. // -------------------------------------------------------------------
  40. CXTPSyntaxEditColorComboBox();
  41. // -------------------------------------------------------------------
  42. // Summary:
  43. //     Standard object destructor.
  44. // -------------------------------------------------------------------
  45. virtual ~CXTPSyntaxEditColorComboBox();
  46. public:
  47. // -------------------------------------------------------------------
  48. // Summary:
  49. //     Use this member to get selected color.
  50. // Returns:
  51. //     Currently selected color or COLORREF_NULL if no selection.
  52. // -------------------------------------------------------------------
  53. COLORREF GetSelColor();
  54. // -------------------------------------------------------------------
  55. // Summary:
  56. //     Use this member to set selected color.
  57. // Parameters:
  58. //     crColor - A color value.
  59. // Returns:
  60. //     newly selected color item index.
  61. // -------------------------------------------------------------------
  62. int SetSelColor(COLORREF crColor);
  63. // -------------------------------------------------------------------
  64. // Summary:
  65. //     Use this member to remove color.
  66. // Parameters:
  67. //     crColor - A color value.
  68. // Returns:
  69. //     Deleted color index or CB_ERR.
  70. // -------------------------------------------------------------------
  71. int DeleteColor(COLORREF crColor);
  72. // -------------------------------------------------------------------
  73. // Summary:
  74. //     Use this member to find color index.
  75. // Parameters:
  76. //     crColor - A color value.
  77. // Returns:
  78. //     Color index or CB_ERR.
  79. // -------------------------------------------------------------------
  80. int FindColor(COLORREF crColor);
  81. // -------------------------------------------------------------------
  82. // Summary:
  83. //     Use this member to set user color value (and name).
  84. // Parameters:
  85. //     crColor      - A color value.
  86. //     lpszUserText - A user color name or NULL to use default.
  87. // Returns:
  88. //     Color index or CB_ERR.
  89. // -------------------------------------------------------------------
  90. int SetUserColor(COLORREF crColor, LPCTSTR lpszUserText=NULL);
  91. // -------------------------------------------------------------------
  92. // Summary:
  93. //     Use this member to get user color value.
  94. // Returns:
  95. //     A user color value.
  96. // -------------------------------------------------------------------
  97. COLORREF GetUserColor() const;
  98. // -------------------------------------------------------------------
  99. // Summary:
  100. //     Use this member to set auto color value.
  101. // Parameters:
  102. //     crColor      - A color value.
  103. //     lpszAutoText - A auto color name or NULL to use default.
  104. // Returns:
  105. //     Color index or CB_ERR.
  106. // -------------------------------------------------------------------
  107. int SetAutoColor(COLORREF crColor, LPCTSTR lpszAutoText=NULL);
  108. // -------------------------------------------------------------------
  109. // Summary:
  110. //     Use this member to get auto color value.
  111. // Returns:
  112. //     A auto color value.
  113. // -------------------------------------------------------------------
  114. COLORREF GetAutoColor() const;
  115. // -------------------------------------------------------------------
  116. // Summary:
  117. //     Use this member to select a user color.
  118. // Returns:
  119. //     Selected color index or CB_ERR.
  120. // -------------------------------------------------------------------
  121. int SelectUserColor();
  122. // -------------------------------------------------------------------
  123. // Summary:
  124. //     Use this member to add default set of colors.
  125. // Returns:
  126. //     true if successful, false otherwise.
  127. // -------------------------------------------------------------------
  128. virtual bool Init();
  129. //{{AFX_CODEJOCK_PRIVATE
  130. public:
  131. virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);
  132. virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMIS);
  133. virtual int CompareItem(LPCOMPAREITEMSTRUCT lpCIS);
  134. virtual BOOL PreTranslateMessage(MSG* pMsg);
  135. protected:
  136. virtual void PreSubclassWindow();
  137. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  138. //}}AFX_CODEJOCK_PRIVATE
  139. protected:
  140. // -------------------------------------------------------------------
  141. // Summary:
  142. //     Use this member to add new color.
  143. // Parameters:
  144. //     crColor - A color value.
  145. //     nID     - A resource ID of a color name string.
  146. // Returns:
  147. //     New color index or CB_ERR.
  148. // -------------------------------------------------------------------
  149. virtual int AddColor(COLORREF crColor, UINT nID);
  150. // -------------------------------------------------------------------
  151. // Summary:
  152. //     Send WM_COMMAND message to owner window.
  153. // Remarks:
  154. //      Default implementation send followin notifuications:
  155. //      CBN_SELENDCANCEL, CBN_SELENDOK
  156. // Parameters:
  157. //     nCode - Notifuication code
  158. // -------------------------------------------------------------------
  159. virtual void NotifyOwner(UINT nCode);
  160. // -------------------------------------------------------------------
  161. // Summary:
  162. //      Use this member function to get list box selected item (works
  163. //      for dropped state only).
  164. // Returns:
  165. //      Currently selected item index or LB_ERR.
  166. // -------------------------------------------------------------------
  167. virtual int GetLBCurSel() const;
  168. //{{AFX_CODEJOCK_PRIVATE
  169. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  170. afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
  171. afx_msg void OnCloseUp();
  172. DECLARE_MESSAGE_MAP()
  173. //}}AFX_CODEJOCK_PRIVATE
  174. private:
  175. int      m_iPrevSel;
  176. bool     m_bPreInit;
  177. COLORREF m_crAuto;
  178. COLORREF m_crUser;
  179. };
  180. /////////////////////////////////////////////////////////////////////////////
  181. AFX_INLINE COLORREF CXTPSyntaxEditColorComboBox::GetUserColor() const {
  182. return m_crUser;
  183. }
  184. AFX_INLINE COLORREF CXTPSyntaxEditColorComboBox::GetAutoColor() const {
  185. return m_crAuto;
  186. }
  187. //===========================================================================
  188. // Summary:
  189. //      Use this function to exchange currently selected color for
  190. //      CXTPSyntaxEditColorComboBox control.
  191. // Parameters:
  192. //     pDX   - A pointer to CDataExchange object.
  193. //     nIDC  - A control ID.
  194. //     value - A reference to color value.
  195. //===========================================================================
  196. _XTP_EXT_CLASS void AFXAPI DDX_CBSyntaxColor(CDataExchange* pDX, int nIDC, COLORREF& value);
  197. /////////////////////////////////////////////////////////////////////////////
  198. //{{AFX_INSERT_LOCATION}}
  199. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  200. #endif // !defined(__XTPSYNTAXEDITCOLORCOMBOBOX_H__)