Combobox Color Picker 3 | CodeGuru

Combobox Color Picker 3

. (Based On Earlier Code That Was By Baldvin Hansson.) This class, CColorPickerCB, implements a Combobox that displays colors, as well as the name of the colors. Colors may be added or removed at runtime, and the control can be queried for the COLORREF value, or the name of the selected color. You can also […]

Written By
CodeGuru Staff
CodeGuru Staff
Oct 19, 1998
2 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

.
(Based On Earlier Code That Was By Baldvin Hansson.)

This class, CColorPickerCB,
implements a Combobox that displays colors, as well as the name
of the colors. Colors may be added or removed at runtime, and the
control can be queried for the COLORREF
value, or the name of the
selected color. You can also set the selected color.

The control correctly handles selection, enabled and disabled
drawing (see images below of the control is various states).
Since the control uses strings for display, the colors can be
sorted.

CColorPickerCB Sample Images

To use this control, create a Drop List Combobox with the
"Owner Draw Fixed"
and "Has Strings"
styles. Attach a CColorPickerCB
to the control, and off you go!

Note that the control will use 1/4 (one fourth) of its width
for the color block, and the rest, minus a few pixels, for the
color text. Be sure you make it wide enough.

If you want the source code to make sense, be sure you are set
to a Tab size of 4, or the comments and code will not line up
correctly.

Any questions or comments, please do not hesitate to EMail me.

 

Thanx to Marcel Galema
for finding a bug with my inverted (selected) color usage, and
suggesting a fix for it.

 

Here is a list of public functions in the
CColorPickerCB class:

COLORREF GetSelectedColorValue(void)           // Get Selected Color Value
CString GetSelectedColorName(void);            // Get Selected Color Name
void SetSelectedColorValue(COLORREF crColor)   // Set Selected Color Value
void SetSelectedColorName(PCSTR cpColor);      // Set Selected Color Name
bool RemoveColor(PCSTR cpColor);               // Remove Color From List
bool RemoveColor(COLORREF crColor);            // Remove Color From List
int  AddColor(PCSTR cpName, COLORREF crColor); // Insert A New Color

The sample application can be obtained here,
and the code for the CColorPickerCB class can be obtained here.

)1998 James R. Twine

Last Update: August 25, 1998

CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.