Click here to Skip to main content
Licence 
First Posted 28 Mar 2001
Views 213,241
Bookmarked 98 times

Using colors in CEdit and CStatic

By | 31 Mar 2001 | Article
Classes derived from CEdit and CStatic. It makes changing colors for text and backgrounds easy.

Sample Image - ColorEdit_ColorStatic.jpg

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 your 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 id's 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

About the Author

Robert Brault

Web Developer

United States United States

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
QuestionBackground color Pinmemberpippo pioppo23:26 21 Dec '11  
GeneralMy vote of 5 PinmemberOriolBayo0:03 21 Oct '11  
GeneralCannot open include file 'ColorEdit.h': No such file or directory ???? Pinmemberamarasat4:02 2 Jun '11  
GeneralRe: Cannot open include file 'ColorEdit.h': No such file or directory ???? PinmemberRobert Brault4:05 2 Jun '11  
GeneralRe: Cannot open include file 'ColorEdit.h': No such file or directory ???? Pinmemberamarasat4:27 2 Jun '11  
GeneralVery useful plug'n'play code :-) Pinmembercodenrico22:07 24 Feb '11  
GeneralMy vote of 5 Pinmembercodenrico22:05 24 Feb '11  
Generalthanks Pinmemberromantic_sjk22:16 30 Aug '10  
GeneralLicensing for this code Pinmemberjmanti7:57 4 May '10  
GeneralRe: Licensing for this code PinmemberRobert Brault3:14 30 Mar '11  
QuestionCColorStatic() PinmemberGillWest8:04 20 Apr '10  
GeneralThank you very much! PinmemberMichail23:17 24 Jan '10  
QuestionHow to change the color part of a MessageWindow Pinmemberafotiou1:39 17 Nov '08  
GeneralThank Pinmembernobihai5:23 26 Oct '08  
Generalthanks a lot Pinmemberliuzhiyong23:17 27 Sep '08  
GeneralAwesome - finally something that just worked out of the box. PinmemberGishu Pillai18:59 19 Nov '07  
QuestionHow to resize static control in DrawItem method Pinmemberrajnijain0:08 6 Sep '07  
GeneralBug int the program PinmemberAimin Liu21:29 26 Feb '07  
GeneralRe: Bug int the program PinmemberJSB281:05 11 May '07  
QuestionBug in my utilisation Pinmemberbaerten5:11 2 Feb '07  
AnswerRe: Bug in my utilisation PinmemberRobert Brault5:22 2 Feb '07  
GeneralRe: Bug in my utilisation Pinmemberbaerten21:31 4 Feb '07  
QuestionAssertion errors Pinmemberconiaker20:38 21 Jan '07  
GeneralThanks! PinmemberSpitfireX2:26 12 Jun '06  
GeneralUnnessessary / Useless / Slowing code Pinmemberdarkzangel5:00 21 May '06  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web04 | 2.5.120517.1 | Last Updated 1 Apr 2001
Article Copyright 2001 by Robert Brault
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid