Erstmal noch ein anderer Weg zur Lösung.
Wie wär es vielleicht mit selberzeichnen neben den Einträgen!
nun zum Hook:
Entweder du Leitest das TShellTreeView-Control ab und überschreibst den Message-Handler
oder
du Hook's (Hack's dich an den Message-Handler an)
Delphi-Quellcode:
TMyForm = clas
...
private
pOldShlTree : TWndMethod; // new
procedure ShlTree(var Message: TMessage);
procedure TMyForm.FormCreate(...);
begin
...
pOldShlTree := tvwShlTree.WindowProc; // new
tvwShlTree.WindowProc := ShlTree;
...
end;
procedure TMyForm.ShlTree(var Message: TMessage);
begin
pOldShlTree(Message);
with Message do
case Msg of
WM_VSCROLL:
...; // wenn man den wParam auswertet kann man noch steuern
// wann neu ausgerichtet werden soll
end;
end;