Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Screen Color Picker

0.00/5 (No votes)
25 Mar 2002 1  
A simple application that retrieves the color codes from any area of your screen, with some cool options.

Sample Image

Introduction

Color Picker is a simple application that retrieves the color codes from any area of your desktop (including any running applications). The program can copy that code - by pressing the SPACE key - to clipboard either in Hex (0x...) or in HTML compatible color code (#...). The color is shown even if the program has lost focus, but you can't copy the value to clipboard. You can choose if you want the application's window to be modal (stay on top) or not.

Initially I make the window modal. In OnInitDialog :
SetWindowPos(&wndTopMost,0,0,0,0,SWP_SHOWWINDOW|SWP_NOSIZE|SWP_NOMOVE);

I use a timer to refresh the color code of the current pixel pointed by the mouse pointer.

SetTimer(m_nTimer,10,NULL);

To retrieve the color code of any pixel on the screen we must get the device context of the entire screen. We can make that with:

HDC hDC;
hDC = CreateDC("DISPLAY",0,0,0);
The CreateDC function creates a device context (DC) for a device by using it's name. After we take the handle to the device context of the entire display, we can get the position of the cursor.
CPoint point;
GetCursorPos(&point);
And finally we can get the color code of that point!
COLORREF color;
color = GetPixel(hDC,point.x,point.y);
After that we can release the device context: 
DeleteDC(hDC);

This application is useful for web designers and programmers, too. I needed this application for designing the colors of my controls.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here