Introduction
I created these two classes to make changing the color of your Edit Box text and your Static text easy. I didn't need all the overhead of a CRichEditCtrl
, but I did need to change the color of my text as well as the background color of the box. CStatic
didn't have an easy way of changing the color of your text either.
These classes are derived from CEdit
and CStatic
.
How to Use
Include the files ColorEdit.cpp, ColorEdit.h and Color.h in your project if you are just working with Edit Boxes. If you want to incorporate colored static text also, you would add the files ColorStatic.cpp, ColorStatic.h.
In your dialogs header file, add :
#include "ColorEdit.h"
#include "ColorStatic.h" //only if using colored static text.
public:
CColorEdit m_ebCtl;
CColorStatic m_stText;
There are two ways you can associate your control ids with the classes. From now on, I will assume you are using both classes.
In your dialogs .cpp file, add:
void YourDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_ST_TEXT, m_stText);
DDX_Control(pDX, IDC_EB_CTL, m_ebCtl);
}
or:
BOOL CYourDlg::OnInitDialog()
{
m_ebCtl.SubclassDlgItem(IDC_EB_CTL,this);
m_stText.SubclassDlgItem(IDC_ST_TEXT,this);
}
Now that this is finished, it is time to use the class. There are three functions available for Edit Boxes and two for Static Text.
They are as follows:
There are three functions available Currently:
SetBkColor(COLORREF crColor)
SetTextColor(COLORREF crColor)
SetReadOnly(BOOL flag = TRUE)
In the file Color.h is the following code:
#define RED RGB(127, 0, 0)
#define GREEN RGB( 0,127, 0)
#define BLUE RGB( 0, 0,127)
#define LIGHTRED RGB(255, 0, 0)
#define LIGHTGREEN RGB( 0,255, 0)
#define LIGHTBLUE RGB( 0, 0,255)
#define BLACK RGB( 0, 0, 0)
#define WHITE RGB(255,255,255)
#define GRAY RGB(192,192,192)
These are just a few I picked out, but add as many colors as you need.
Here is how easy it is to use:
m_ebCtl.SetTextColor(BLUE);
m_ebCtl.SetBkColor(WHITE);
m_ebCtl.SetReadOnly();
m_stText.SetTextColor(RED);
m_stText.SetBkColor(GREEN);
I hope someone out there finds this useful :)
License
This article has no explicit license attached to it, but may contain usage terms in the article text or the download files themselves. If in doubt, please contact the author via the discussion board below.
A list of licenses authors might use can be found here.