Power Color Picker
Posted
by Patrick Prache
on December 6th, 1999
Features :
This new control derived from CWnd provides an interface for users to select colors for an object. It is more intuitive than CColorDialog in windows API.
Interface description :
- right rectangle : luminance.
- left rectangle : saturation on x axis, hue on y axis.
- bottom rectangle : currently selected color.
This control is fully resizable on the fly. You could specify a size for each rectangle.
When you move the cursor with shift or ctrl, the color change only on one axis (hue or saturation)
How to use it in a dialog :
- a member variable must be added to the dialog :
...
protected:
PowerColorPicker picker;
...
- create the picker in the method OnInitDialog() of your dialog :
... //specify the control size RECT rect={10,10,390,300};//create control in OnInitDialog() picker.Create(NULL,"Haha",WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS ,rect,this, NULL, NULL); ...
- define a callback when the user click/move on picker :
//define a callback void testfunc(COLORREF ref,void *ClientData) { CColorPickerDlg * local= (CColorPickerDlg*)ClientData; char str[256]; sprintf(str,"RED: %ld\nGREEN: %ld\nBLUE: %ld",GetRValue(ref),GetGValue(ref),GetBValue(ref)); OutputDebugString(str); } ... //register callbacks in OnInitDialog() picker.RegisterCallbackOnMove(testfunc,this);
picker.RegisterCallbackOnLButtonDown(testfunc,this); ... - you could define the width of the luminance bar anywhere in your source
:
... picker.SetLuminanceBarWidth(20); ...
Downloads
Download Source Code - 31 KbDownload Demo Application - 9 Kb

Comments
There are no comments yet. Be the first to comment!