CColorListBox - A list box with colored strings

Environment: Windows NT4 SP4, Visual C++ 6

ColorLBTest

This CColorListBox class is based on Patrice Godard's colored list box class of the same name, with the following additions:

  • The focus rectangle is now drawn only when the control has the input focus.
  • Items in the list are properly colored when the list box is disabled.
  • Items in the list are properly displayed when the LBS_USETABSTOPS style is set.
  • The entire rectangle of the selected item is now colored, instead of just the text background rectangle.
  • When an item is selected, the text color inverts, and the highlight color is the original text color (like the Cyan list item in the above graphic).

The following public methods are used to set the item text and/or color:


int AddString(LPCTSTR lpszItem);
int AddString(LPCTSTR lpszItem, COLORREF rgb);
int InsertString(int nIndex, LPCTSTR lpszItem);
int InsertString(int nIndex, LPCTSTR lpszItem, COLORREF rgb);
void SetItemColor(int nIndex, COLORREF rgb);

Follow these steps to add a CColorListBox to a dialog:

  • Add ColorListBox.cpp and ColorListBox.h to your project.
  • Add include "ColorListBox.h" to the header file of your dialog class.
  • Add a list box control to your dialog, with the Owner Draw style set to Fixed or Variable, and with the Has Strings style checked.
  • Use ClassWizard to add a member variable of type CColorListBox for the list box you just added. If CColorListBox is not in the Variable Type list, choose CListBox, and manually change the type to CColorListBox later.

Now add or insert strings into the list box, using the overloaded functions:


m_lbColor.AddString("Green", RGB(0, 255, 0));
m_lbColor.InsertString(0, "Red", RGB(255, 0, 0));

Downloads

Download demo project - 20 Kb
Download source - 4 Kb


Comments

  • god job!

    Posted by marine on 06/02/2012 11:58am

    thanks

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • A global data storage provider whose business is booming needed a best-in-class data center to serve as the backbone of its technical operations going forward—and it needed it delivered within a year.

  • Java developers know that testing code changes can be a huge pain, and waiting for an application to redeploy after a code fix can take an eternity. Wouldn't it be great if you could see your code changes immediately, fine-tune, debug, explore and deploy code without waiting for ages? In this white paper, find out how that's possible with a Java plugin that drastically changes the way you develop, test and run Java applications. Discover the advantages of this plugin, and the changes you can expect to see …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds