Quote Originally Posted by srelu
.... Just one problem, despite the fact that the new handle of your color cursor is there, the arrow cursor keeps showing up. That's because your window class is registered with an arrow cursor and the system will not allow any other cursor beeing used for that window. To be able to change the cursor, the window class must be registered without a cursor handle. To do this, you must change the window class before the window is created. You can do it from PreCreateWindow. ...
It's not necessary to muck around with the registration of the window class. I would leave it alone, and instead, simply handle the WM_SETCURSOR message. Inside your WM_LBUTTONDOWN handler, set some sort of a flag indicating that a special cursor should be displayed (and clear this flag in the WM_LBUTTONUP handler). Inside the handler for WM_SETCURSOR, check this flag, and call SetCursor() if the flag is set.

Mike

PS to srelu: Your suggested code was given for MFC, but the OP specified no MFC