⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 colorpickercb.h

📁 此书包含了大量的VC程序源代码,对于学习者来说是非常重要的,看后大家对VC将会有质的提高.非常经典.
💻 H
字号:

#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_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -