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

  • There is no understating the impact of security and network connectivity on today's cloud environments. Yes, clouds can scale, expedite processing, and reduce costs, but they also incur risks associated with multi-tenancy, availability, and access control. How users connect to the cloud is vital because not only are security risks non-negotiable, but performance, flexibility, and reliability are critical as well, which leads to a heavy emphasis on combining strong security with private network ecosystems. …

  • On-demand Event Event Date: March 19, 2015 The 2015 Enterprise Mobile Application Survey asked 250 mobility professionals what their biggest mobile challenges are, how many employees they are equipping with mobile apps, and their methods for driving value with mobility. Join Dan Woods, Editor and CTO of CITO Research, and Alan Murray, SVP of Products at Apperian, as they break down the results of this survey and discuss how enterprises are using mobile application management and private app stores to …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date