ColorPickerCB.h
上传用户:aokegd
上传日期:2009-12-14
资源大小:1276k
文件大小:2k
- #if !defined(AFX_COLORPICKERCB_H__C74333B7_A13A_11D1_ADB6_C04D0BC10000__INCLUDED_)
- #define AFX_COLORPICKERCB_H__C74333B7_A13A_11D1_ADB6_C04D0BC10000__INCLUDED_
- #if _MSC_VER >= 1000
- #pragma once
- #endif // _MSC_VER >= 1000
- //
- // Constants...
- //
- #define CCB_MAX_COLORS 16 // 列表的最大颜色数量
- #define CCB_MAX_COLOR_NAME 16 // 颜色名称的最大字符数
- struct SColorAndName
- {
- SColorAndName()
- {
- ZeroMemory( this, sizeof( SColorAndName ) ); //初始化结构
- };
- SColorAndName( COLORREF crColor, PCSTR cpColor )
- {
- ZeroMemory( this, sizeof( SColorAndName ) );
- m_crColor = crColor; // 设置颜色值
- strncpy( m_cColor, cpColor, CCB_MAX_COLOR_NAME ); // 设置颜色名称
- };
- COLORREF m_crColor; // 颜色值
- char m_cColor[ CCB_MAX_COLOR_NAME ]; // 颜色名称
- };
- class CColorPickerCB : public CComboBox
- {
- // Construction
- public:
- CColorPickerCB();
- // Attributes
- private:
- bool m_bInitialized; // 是否被初始化了
- CString m_sColorName; // 被选择条目的颜色名称
- static
- SColorAndName ms_pColors[ CCB_MAX_COLORS ]; // 保存所有颜色值和颜色名的数组
- private:
- void Initialize( void ); // 初始化
- public:
- COLORREF GetSelectedColorValue( void ); // 获得选择颜色的值
- CString GetSelectedColorName( void ); // 获得选择颜色的名称
- void SetSelectedColorValue( COLORREF crClr );// 设定颜色名值
- void SetSelectedColorName( PCSTR cpColor ); // 设定颜色名
- bool RemoveColor( PCSTR cpColor ); // 将一种颜色删除
- bool RemoveColor( COLORREF crClr ); // 将一种颜色删除
-
- int AddColor( PCSTR cpNam, COLORREF crClr );// 插入一个新的颜色
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CColorPickerCB)
- protected:
- virtual void PreSubclassWindow();
- //}}AFX_VIRTUAL
- virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
- // Implementation
- public:
- virtual ~CColorPickerCB();
- // Generated message map functions
- protected:
- //{{AFX_MSG(CColorPickerCB)
- afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- };
- /////////////////////////////////////////////////////////////////////////////
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
- #endif // !defined(AFX_COLORPICKERCB_H__C74333B7_A13A_11D1_ADB6_C04D0BC10000__INCLUDED_)