前几天转发了一篇网上搜到的文章“改变CButton按钮控件的文本和背景颜色”,里边描述了从CButton类继承自己可改变字体与背景颜色的按钮类的方法,自己经过测试,并进行了一些修改和调整,现将自己的经历记录如下。
自先声明一个CColorBtn类,并在其中添加一写相关参数,添加项参见注释。
//CColorBtn.h
class CColorBtn : public CButton
{
DECLARE_DYNAMIC(CColorBtn)
public:
CColorBtn();
virtual ~CColorBtn();
void SetHighLightTextColor(COLORREF color);//设置高亮时字体的颜色
void SetHighLightBkColor(COLORREF color);//设置高亮时的背景颜色
COLORREF GetHighLightTextColor() const;//获取高亮时字体的颜色
COLORREF GetHighLightBkColor() const;//设置高亮时的背景颜色
protected:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);//重载,颜色的修改工作主要通过此函数来完
bool m_IsHighLight;//记录按钮是否处于高亮状态的标志
UINT m_uStyle;//记录按钮类型的变量
COLORREF m_HighLightTextColor;//文本高亮颜色值
COLORREF m_HighLightBkColor;//背景高亮颜色值
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClicked();
protected:
virtual void PreSubclassWindow();
public:
afx_msg void OnLButtonDown(UINT nFla