I want to draw a round region when the move is down on my window. Please Look at the following code:

Code:
   case WM_LBUTTONDOWN:
	   InvalidateRgn(hwnd, hrgn, TRUE);
	   hdc = GetDC(hwnd);
	   hbrush = CreateSolidBrush(RGB(34,43, 255));
	   FillRgn(hdc, hrgn, hbrush);
	   ReleaseDC(hwnd, hdc);
	   DeleteObject(hbrush); 
	   ValidateRgn(hwnd, hrgn);
	   return 0;
That works fine but whenever, I move another window on top of my region or resize my window, it erases all that stuff and then the only way I can redraw the region is under the WM_PAINT message.

-- So what is the other way to draw the roundrect only after the mouse is down. I have tried putting this code under WM_pAINT message but it draws the roundrect whenever it is loader because I have included the styles "CS_HREDRAW | CS_VREDRAW"

Please help me with that!