1.ColorEdit.h
class CColorEdit : public CEdit //以CEdit为基类派生CColorEdit{
public:
CColorEdit();
COLORREF m_Color;
void SetColor(COLORREF color);
virtual ~CColorEdit();
protected:
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
DECLARE_MESSAGE_MAP()
};
2.ColorEdit.cpp
#include "stdafx.h"
//#include "TextColor.h"
#include "ColorEdit.h"
CColorEdit::CColorEdit()
{
}
CColorEdit::~CColorEdit()
{
}
BEGIN_MESSAGE_MAP(CColorEdit, CEdit)
ON_WM_CTLCOLOR_REFLECT()
END_MESSAGE_MAP()
void CColorEdit::SetColor(COLORREF color)//设置文本颜色变量赋值
{
m_Color = color;
}
HBRUSH CColorEdit::CtlColor(CDC* pDC, UINT nCtlColor) //WM_CTLCOLOR消息
{
CBrush m_Brush;
m_Brush.CreateStockObject(WHITE_BRUSH);
// nCtlColor = CTLCOLOR_EDIT;
// pDC->SetTextColor(RGB(0, 255, 0));//所有的编辑框设定为同一颜色
pDC->SetTextColor(m_Color);
return m_Brush;
}
3.Dlg实现
CDialog::OnInitDialog();
m_Edit1.SetColor(RGB(255,0,0));
m_Edit2.SetColor(RGB(0,0,255));
m_Edit3.SetColor(RGB(255,0,255));