ColorPickerCB.h
上传用户:aokegd
上传日期:2009-12-14
资源大小:1276k
文件大小:2k
源码类别:

书籍源码

开发平台:

Visual C++

  1. #if !defined(AFX_COLORPICKERCB_H__C74333B7_A13A_11D1_ADB6_C04D0BC10000__INCLUDED_)
  2. #define AFX_COLORPICKERCB_H__C74333B7_A13A_11D1_ADB6_C04D0BC10000__INCLUDED_
  3. #if _MSC_VER >= 1000
  4. #pragma once
  5. #endif // _MSC_VER >= 1000
  6. //
  7. // Constants...
  8. //
  9. #define CCB_MAX_COLORS 16 // 列表的最大颜色数量
  10. #define CCB_MAX_COLOR_NAME 16 // 颜色名称的最大字符数
  11. struct SColorAndName
  12. {
  13. SColorAndName()
  14. {
  15. ZeroMemory( this, sizeof( SColorAndName ) ); //初始化结构
  16. };
  17. SColorAndName( COLORREF crColor, PCSTR cpColor )
  18. {
  19. ZeroMemory( this, sizeof( SColorAndName ) );
  20. m_crColor = crColor; // 设置颜色值
  21. strncpy( m_cColor, cpColor, CCB_MAX_COLOR_NAME ); // 设置颜色名称
  22. };
  23. COLORREF m_crColor; // 颜色值
  24. char m_cColor[ CCB_MAX_COLOR_NAME ]; // 颜色名称
  25. };
  26. class CColorPickerCB : public CComboBox
  27. {
  28. // Construction
  29. public:
  30. CColorPickerCB();
  31. // Attributes
  32. private:
  33. bool m_bInitialized; // 是否被初始化了
  34. CString m_sColorName; // 被选择条目的颜色名称
  35. static
  36. SColorAndName ms_pColors[ CCB_MAX_COLORS ]; // 保存所有颜色值和颜色名的数组
  37. private:
  38. void Initialize( void ); // 初始化
  39. public:
  40. COLORREF GetSelectedColorValue( void ); // 获得选择颜色的值
  41. CString GetSelectedColorName( void ); // 获得选择颜色的名称
  42. void SetSelectedColorValue( COLORREF crClr );// 设定颜色名值
  43. void SetSelectedColorName( PCSTR cpColor ); // 设定颜色名
  44. bool RemoveColor( PCSTR cpColor ); // 将一种颜色删除
  45. bool RemoveColor( COLORREF crClr ); // 将一种颜色删除
  46. int AddColor( PCSTR cpNam, COLORREF crClr );// 插入一个新的颜色
  47. // Overrides
  48. // ClassWizard generated virtual function overrides
  49. //{{AFX_VIRTUAL(CColorPickerCB)
  50. protected:
  51. virtual void PreSubclassWindow();
  52. //}}AFX_VIRTUAL
  53. virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  54. // Implementation
  55. public:
  56. virtual ~CColorPickerCB();
  57. // Generated message map functions
  58. protected:
  59. //{{AFX_MSG(CColorPickerCB)
  60. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  61. //}}AFX_MSG
  62. DECLARE_MESSAGE_MAP()
  63. };
  64. /////////////////////////////////////////////////////////////////////////////
  65. //{{AFX_INSERT_LOCATION}}
  66. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  67. #endif // !defined(AFX_COLORPICKERCB_H__C74333B7_A13A_11D1_ADB6_C04D0BC10000__INCLUDED_)