Things to consider....

Timer events fire every time period, not once. So you have one timer every second and another firing every 2 secs. (or very similar times)

EndPaint() cleans up the HDC from BeginPaint. It may not be valid to draw to it later. Look at GetDC(NULL) and ReleaseDC.

You are not clearing the background (FillRect() or similar)

I would set the drawing flags in the timer and call for a paint (which would choose the correct shape to draw).