Wie zeichnet man das formatierte Auswahlrechteck von TTreeView während AdvancedCustomDrawItem?

8

Ich mache die benutzerdefinierte TTreeView Zeichnung von Grund auf neu mit OnAdvancedCustomDrawItem event, und ich frage mich, wie ich diese Auswahl und die heißen Rechtecke korrekt in den Hintergrund meiner Elemente für die Eigentümerzeichnung rende. Sie sind Vista / 7-gestylt, so dass ich den Hintergrund nicht einfach einfarbig ausfüllen kann.

Ich habe versucht, meine Artikel in cdPostPaint stage zu zeichnen, aber wenn ich DefaultDraw := True auf cdPrePaint stage belasse, um den Auswahlhintergrund zu zeichnen, wird die komplette Standardzeichnung einschließlich Text der Elemente angezeigt.

%Vor%     
Andrew 07.06.2012, 11:14
quelle

1 Antwort

12

Hier ist meine Lösung (getestet).

Beachten Sie, dass die TreeView HotTrack := True haben muss, um Hot Items normal zu zeichnen.

Es muss auch eine zusätzliche Zeichnung geben, wenn die Themen nicht aktiviert sind.

%Vor%     
Andrew 07.06.2012, 16:39
quelle