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

  1. Copy ColorBtn.cpp and ColorBtn.h into your project directory.
  2. Add ColorBtn.cpp to your project.

How to use

  1. Create a button on your dialog. Mark it as "Owner Draw".
  2. Declare a variable in your dialog class, like this:
    CColorBtn colorbtn;
  3. At OnInitDialog, call SubclassDlgItem, like this:
    colorbtn.SubclassDlgItem(IDC_BUTTON,this); // Use your button ID here
  4. Add Colors to the button's color dialog using AddColorWell or SetColorsFromArray
  5. Customize the button's color dialog by setting the number of columns, border widths, and shape variables
  6. 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

Download source - 8 KB

Date Last Updated: February 3, 1999



Comments

  • cool stuff

    Posted by Legacy on 03/20/2003 12:00am

    Originally posted by: dan vallejo

    Pretty cool code

    dan@cstructor.com
    www.cstructor.com

    Reply
  • i love ariel ortega

    Posted by Legacy on 07/25/2002 12:00am

    Originally posted by: selcuk

    i love ariel ortega

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

Top White Papers and Webcasts

  • Live Event Date: December 11, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT Market pressures to move more quickly and develop innovative applications are forcing organizations to rethink how they develop and release applications. The combination of public clouds and physical back-end infrastructures are a means to get applications out faster. However, these hybrid solutions complicate DevOps adoption, with application delivery pipelines that span across complex hybrid cloud and non-cloud environments. Check out this …

  • On-demand Event Event Date: October 29, 2014 It's well understood how critical version control is for code. However, its importance to DevOps isn't always recognized. The 2014 DevOps Survey of Practice shows that one of the key predictors of DevOps success is putting all production environment artifacts into version control. In this webcast, Gene Kim discusses these survey findings and shares woeful tales of artifact management gone wrong! Gene also shares examples of how high-performing DevOps …

Most Popular Programming Stories

More for Developers

RSS Feeds