Entwickler-Ecke

Windows API - Tooltips für zu lange Einträge in einer ListBox


worm - Fr 30.05.03 23:21
Titel: Tooltips für zu lange Einträge in einer ListBox
Hi!
Ich baue mir grade eine ListBox um, so dass sie ähnlich einer CheckListBox funktioniert (aber mit ImageList und mehr Stati). Dann hatte ich vor, bei zu langen Einträgen den Rest des Eintrags als Tooltip einzublenden, so wie bei ListViews.
Wie realisiere ich das (wie positioniere ich einen per API erzeugten Tooltip pixelgenau über dem Eintrag) und ist es überhaupt sinnvoll, das so zu realisieren, oder kostet eine ListView auch nicht wirklich mehr Ressourcen (ich brauch sie ja wirklich nur als eine Art CheckListBox, und 'ne ListView beherrscht ja noch viel mehr)?
Thx for Hints (und Tooltips *g*), worm


Anonymous - Mo 28.07.03 23:44

DLLs sind sehr Ressourcensparend, solange der einzelne Prozess nicht in den Speicher der DLL schreibt. Will heissen solange die DLL nich modifiziert wird, teilen sich alle Prozesse die gleiche Kopie der DLL.

Es kann also auch ein ListView genommen werden.


worm - Di 29.07.03 00:06

Danke, hab ich dann auch so gemacht... bei den Ressourcen ging es mir mehr um die Speicherung der Einträge etc, die bei ListViews wahrscheinlich weniger kompakt ist als bei ListBoxes (da es bei LVs mehr zu speichern gibt). Aber so viele Einträge sind es meistens nicht, also ist das so schon besser weil wesentlich einfacher.


worm - Sa 30.08.03 00:35

Hallo, falls irgendwer diesen Thread nochmal finden sollte, es gibt doch eine relativ einfache Lösung: MSDN [http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/tooltip/usingtooltips.asp#tooltip_sample_inplace]
Dort wird beschrieben, wie man über die Message TTM_ADJUSTRECT ein fertiges Rect für sein Tooltip-Window bekommt. Vorausgesetzt natürlich, man weiß den Bereich, in dem der Text steht (lässt sich mit ItemRect ermitteln). Funzt allerdings erst ab installiertem IE5.