Using Colors in CEdit and CStatic






4.83/5 (82 votes)
Mar 29, 2001
1 min read

384997

13943
Classes derived from CEdit and CStatic. It makes changing colors for text and backgrounds easy.
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; //only if using colored static text.
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);
//{{AFX_DATA_MAP(CYourDlg)
//}}AFX_DATA_MAP
DDX_Control(pDX, IDC_ST_TEXT, m_stText);
DDX_Control(pDX, IDC_EB_CTL, m_ebCtl);
}
or:
BOOL CYourDlg::OnInitDialog()
{
// TODO: Add extra initialization here
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) // Works for both classes
SetTextColor(COLORREF crColor) // Works for both classes
SetReadOnly(BOOL flag = TRUE) //This function is for CColorEdit only.
In the file Color.h is the following code:
// Color.h
// Colorref's to use with your Programs
#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); //Changes the Edit Box text to Blue
m_ebCtl.SetBkColor(WHITE); //By default your background color is the
//same as your system color(color of dialog)
m_ebCtl.SetReadOnly(); //This makes it so nobody can edit the text.
//If you disable the box it does not let you
//change colors.
m_stText.SetTextColor(RED); //Changes the Static Text to Red
m_stText.SetBkColor(GREEN); //You probably will not use it, but it's here.
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.