Also wenn du WM_PAINT bearbeitest, dann mußt du zwingend deinen Code in ein BeginPaint und EndPaint packen, damit Windows weiß, dass dein Fenster wieder aktuell ist, sonst schickt es andauernd weiter ein WM_PAINT an dein Fenster.
Also:
Delphi-Quellcode:
case Msg of
WM_PAINT:
begin
BeginPaint();
EndPaint();
end;
end;