case WM_MOUSEMOVE will not happen while your code is executing case WM_LBUTTONDOWN. You need to break the operation up into 3 steps.
(1) If the click is within the image limits then call SetCapture. This makes sure you will get all subsequent WM_MOUSEMOVE messages, even if the mouse if moved outside your window. Return from the WM_LBUTTONDOWN handler.
(2) In the WM_MOUSEMOVE handler, if GetCapture indicates you have the mouse captured, then do your painting. Or, it might be easier and better to simply InvalidateRect, and then let the subsequent WM_PAINT paint the object.
(3) At WM_LBUTTONUP do ReleaseCapture.