Dateinamen in FileListBox als Hint bei Mouseover anzeigen



  • Hallo,

    in einer FileListBox werden z.B. lange Dateinamen wegen der festgelegten Boxbreite nicht komplett lesbar dargestellt. Damit man trotzdem den kompletten Dateinamen irgendwo ablesen kann, kennt man aus Anwendungen die Möglichkeit, dass, wenn man mit der Maus über einen Dateinamen in der Box fährt, der komplette Dateiname als eine Art Hilfetext (als Hint ?) neben dem Mauscursor angezeigt wird. Wie könnte man so etwas realisieren?

    Vielen Dank!



  • Zu Zeiten von Win3.1 gab es keine langen Dateinamen... also ist standardmäßig sicher nichts vorhanden.
    Ansonsten scheint die Filelistbox ähnlich wie eine Listbox zu funktionieren. (Stammt ja auch davon ab.) Kann man bei einer Listbox einzelnen Einträgen Hints zuweisen? Ich glaube nicht.



  • -Mausposition in der ListBox ermitteln
    -Itemhöhe auslesen
    -aus beiden den Index des unter der Maus liegenden Items berechnen
    -falls Liste gescrollt, über TopIndex den tatsächlichen Index berechnen
    -Iteminhalt als Hint einblenden



  • Für die FileListBox gibt es aber nur die Methode "OnMouseMove", in der ich die Mouseposition abfragen könnte. Diese Methode wird jedoch nur ausgelöst, wenn ich zum erstenmal auf die Box fahre oder wenn ich auf einen Dateinamen klicke. Hint soll aber erscheinen, sobald ich auf einen Dateinamen mit der Mouse fahre (also ohne diesen anzuklicken). Wie kann man das machen?



  • OnMouseMove wird bei jeder Bewegung über der FileListBox ausgelöst.

    Davon abgesehen kann die Mausposition auch über das globale Mouse-Objekt oder per API-Funktionen wie GetCursorPos abgefragt werden. Hier muss das Ergebnis dann natürlich noch auf die ListBox umgerechnet werden (siehe ScreenToClient/ClientToScreen).


Anmelden zum Antworten