Folgendes Problem:
Ich habe eine abgeleitete TButton-Klasse, bei der ich die Caption und noch anderes selbst zeichne. Der Button selbst wird weiterhin von Windows erstellt.
Gezeichnet wird das ganze über
Delphi-Quellcode:
procedure TMyButton.WndProc(var Message: TMessage);
begin
inherited WndProc(Message);
if Message.Msg in [WM_PAINT,WM_ACTIVATE,BM_SETSTATE,WM_ENABLE,WM_NCPAINT] then
begin
AdditionalPaint;
end;
end;
Bei XP kommt es manchmal vor, das AdditionalPaint nicht durchlaufen wird und der Button dann leer ist. Das ganze tritt zufällig auf und meistens, wenn ich aus einer anderen Maske wiederkomme. Fährt man mit der Maus über den leeren Button, wird das Zeichnen wieder erzwungen.
Meine Frage: Welche Windows-Ereignisse gibt es noch, auf die ich das Zeichnen anwerfen muss?