InvalidateRect vielleicht?
Wenn ich wüsste wann die Maus den Rect des aktuellen Items verlässt.
Dann haben die Items keine eigenen Handles so das ich mit InvalidateRect diese Invalidaten könnte.
Es wird immer das
Handle des ListView verwendet.
Es gibt ja die Message CDDS_ITEMPREPAINT die dann CDRF_NOTIFYSUBITEMDRAW zurück gibt
Ich glaube aber das ich diese nur in der Anwendung selbst auswerten kann.
Deshalb nutzt das auch nicht viel weil ich in der
DLL selbst den Rahmen zeichnen will.
Zudem verwende ich die schon aber für die gesamte ListView.
SkinEngine.FInvalidateRect(WinHandle, False);
Delphi-Quellcode:
procedure TSkinEngine.FInvalidateRect(WinHandle: HWND; Flag: Boolean);
var
rc: TRect;
//hbr: HBRUSH;
begin
GetClientRect(WinHandle, rc);
//hbr := CreateSolidBrush(clred);
//FillRect(GetDC(WinHandle),rc , hbr);
InvalidateRect(WinHandle, @rc, Flag);
UpdateWindow(WinHandle);
end;
Die Kommentierten zeilen sind zum Testen und werden eingeschaltet damit ich sehen kann ob der Rect Korrekt gesetzt ist.
Logischer weise natürlich anstelle von InvalidateRect.
gruss