CStatic本身并不具备,改变颜色和背景色这个功能,如果只想实现这个功能,可以响应WM_CTLCOLOR消息。可以参加这里所说的做,http://www.vckbase.com/bbs/prime/viewprime.asp?id=558 现在我是想要让它根据自己选择的颜色而已改变,实现如下,
,新建一个类,让它继续CStatic类,添加自己的方法
class
CColorCStatic :
public
CStatic
... {
DECLARE_DYNAMIC(CColorCStatic)
public:
CColorCStatic();
virtual ~CColorCStatic();
protected:
afx_msg void OnPaint();
protected:
DECLARE_MESSAGE_MAP()
protected:
CString m_strCaption;
COLORREF m_BackColor;
COLORREF m_TextColor;
// Operations
public:
void SetTextColor( COLORREF TextColor );
void SetBackColor( COLORREF BackColor );
void SetCaption( CString strCaption );
... {
DECLARE_DYNAMIC(CColorCStatic)
public:
CColorCStatic();
virtual ~CColorCStatic();
protected:
afx_msg void OnPaint();
protected:
DECLARE_MESSAGE_MAP()
protected:
CString m_strCaption;
COLORREF m_BackColor;
COLORREF m_TextColor;
// Operations
public:
void SetTextColor( COLORREF TextColor );
void SetBackColor( COLORREF BackColor );
void SetCaption( CString strCaption );