BeginPaint呼ばないと無効領域のクリアができないからだよ
クリアできないといつまでたってもWM_PAINT送り続けられる。
ValidateRectで消してしまうのも手だが。