Customizable Color Picker
As a starting point, I used Luis Ortega's code from A Color Picker.
This customizable color picker was designed because I needed a color picker that could calculate itself when passed an array of colors. I didn't want to use a resource file, so the entire color dialog is created dynamically from memory. This makes using the control quick and easy. I have included methods for customizing the border sizes, number of well columns, well heights, and well shapes. The control is designed for loading colors at run-time (from a database,for example). There is not support for serialization, persistance to the registry, or an "other" button. These can be easily added if needed. My project didn't need them, so I didn't bother adding them.
A demo project is included. I hope someone else can get some use out of this code, too. :-)
How to include in your project
- Copy ColorBtn.cpp and ColorBtn.h into your project directory.
- Add ColorBtn.cpp to your project.
How to use
- Create a button on your dialog. Mark it as "Owner Draw".
- Declare a variable in your dialog class, like this:
CColorBtn colorbtn; - At OnInitDialog, call SubclassDlgItem, like this:
colorbtn.SubclassDlgItem(IDC_BUTTON,this); // Use your button ID here - Add Colors to the button's color dialog using AddColorWell or SetColorsFromArray
- Customize the button's color dialog by setting the number of columns, border widths, and shape variables
- Repeat the process for each button you want. (See the sample project provided for more details)
You can set and read the selected color using the "m_CurrentColor" member variable.
Download compiled demo app (no project files) - 81 KB
Download demo (project files) - 40 KB
Date Last Updated: February 3, 1999

Comments
cool stuff
Posted by Legacy on 03/20/2003 12:00amOriginally posted by: dan vallejo
Pretty cool code
dan@cstructor.com
Replywww.cstructor.com
i love ariel ortega
Posted by Legacy on 07/25/2002 12:00amOriginally posted by: selcuk
i love ariel ortega
Reply