| |
|
|
- Seite 1 - |
|
Julian Schmidt | Hallo, kann man irgendwie einer Zeile eines Listviews einen bestimmten Tooltip zuweisen? Gruß |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
| |
|
| |
|
|
|
Julian Schmidt | Da kommt..
Fehler in Struktur- oder Klassendefinition CBSIZE KompilierenMarkierenSeparierenstruct LVSETINFOTIP=cbSize,dwFlags,pszText,iItem,iSubItem
declare m#
dim m#,20
long m#,0=20,0,"Test",0,0
sendmessage(listview&,LVM_SETINFOTIP,0,m#)
dispose m#
|
|
|
| |
|
|
|
| |
|
| |
|
|
|
Julian Schmidt | Scheint dennoch nicht zu funktionieren... KompilierenMarkierenSeparierenDef GetSysColor(1) !"USER32","GetSysColor"
$I Listview_Funktionen.inc
var lvdll&=usedll("Listview.dll")
cls GetSysColor(15)
var listview&=CreateListView(%hwnd,%hinstance,0,GetSysColor(15),-1,$431)
whileloop 10
InsertColumn listview&,"Spalte"+STr$(&loop)-1,50,0
Endwhile
whileloop 30
SetItem listview&,"Text1","Text2","Text3","Text4","Text5","Text6","Text7","Text8","Text9"
Endwhile
ShowListView(listview&,0,0,width(%hwnd),height(%hwnd))
Declare m#
Dim m#,20
Long m#,0=20,0,"Test",0,0
Sendmessage(listview&,4096+173,0,m#)
Dispose m#
InitMessages(%hwnd)
While 1
waitinput
Endwhile
CloseMessages(%hwnd)
freedll lvdll&
$I Listview_Dispose.inc
end
|
|
|
| |
|
|
|
| Lade mal ein komplettes Projekt hoch (wenn Du die listview.dll nutzt) oder einen Quelltext der ohne DLL auskommt. |
|
|
| |
|
|
|
Julian Schmidt |
|
|
| |
|
|
|
Thomas Freier | Mit der Listview.dll und TTIP.pcu lassen sich doch recht einfach tolle Tooltips erstellen.
Oder ohne TTIP.pcu KompilierenMarkierenSeparieren $I Listview_Funktionen.inc
var lvdll&=usedll("Listview.dll")
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' (W) 2003 Frank Abbing
'
Declare bereich#,be#,erg&,erg2&,x&,y&,text$
Dim be#,8
Dim bereich#,1024
DEF GetCursorPos(1) !"USER32","GetCursorPos"
DEF WindowFromPoint(2) !"USER32","WindowFromPoint"
DEF ChildWindowFromPoint(3) !"USER32","ChildWindowFromPoint"
Def GetSysColor(1) !"USER32","GetSysColor"
Def ScreenToClient(2) !"USER32","ScreenToClient"
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SetTrueColor 1
cls GetSysColor(15)
var listview&=CreateListView(%hwnd,%hinstance,-1,9356944,-1,$20)
InsertColumn listview&,"1.Spalte",120,0
InsertColumn listview&,"2.Spalte",120,0
Whileloop 50
AddString(listview&,"mit|HERZ "+str$(&loop))
wend
'Liste Tooltips
vaR LB%=CreateListBox(%hwnd,0,0,0,0,0)
Whileloop GetCount(listview&)
AddString(LB%,"Tooltip "+str$(&loop))
wend
var ToolTip&=create("Tooltip",%hwnd,listview&,"")
' Zeilenhöhe im Listview festlegen oder ermitteln und in einer Variablen speichern
' für die spätere Berechnung: Curserposition ist in Zeile
var freelist&=SetLineHeight(listview&,20)
ShowListView(listview&,10,160,400,200)
Declare ZeileO&,ZeileU&,x%,y%,xold%
Usermessages 16
SubClass listview&, 1
while 1
waitinput
case %umessage=16 :BREAK
wend
SubClass listview&, 0
DestroyWindow(%hwnd)
DestroyImageList(freelist&)
dispose be#
dispose bereich#
freedll lvdll&
end
SubClassProc
Clear bereich#
GetVisibleLines(listview&,bereich#)
ZeileO&=Long(bereich#,0)'Obere sichtbare Zeile
ZeileU&=Long(bereich#,4)'Untere sichtbare Zeile
GetCursorPos(be#)
x&=Long(be#,0)
y&=Long(be#,4)
erg&=@WindowFromPoint(x&,y&)
If erg&<>0
ScreenToClient(erg&,be#)
x&=Long(be#,0)'Maus Position X
y&=Long(be#,4)'Maus Position Y
erg2&=@ChildWindowFromPoint(erg&,x&,y&)'Handle unter Mauszeiger
EndIf
x%= int((y&/21)-1+ZeileO&)'Zeile= Mausposition/ Zeilenhöhe+1(=Raster)
if x%<>xold%
settext ToolTip&,%hwnd,Listview&,""
If erg&=Listview&
settext ToolTip&,%hwnd,Listview&,getstring$(LB%,x%)
xold%=x%
EndIf
EndIf
Set("WinProc",1)
EndProc
|
|
|
| |
|
|
|
Julian Schmidt | Schon, dennoch ist der weg über Subclassing umständlich |
|
|
| |
|
|
|
Thomas Freier | Ist natürlich auch mit GetMessage möglich. KompilierenMarkierenSeparieren $I Listview_Funktionen.inc
var lvdll&=usedll("Listview.dll")
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' (W) 2003 Frank Abbing
'
Declare bereich#,be#,erg&,erg2&,x&,y&,text$
Dim be#,8
Dim bereich#,1024
DEF GetCursorPos(1) !"USER32","GetCursorPos"
DEF WindowFromPoint(2) !"USER32","WindowFromPoint"
DEF ChildWindowFromPoint(3) !"USER32","ChildWindowFromPoint"
Def GetSysColor(1) !"USER32","GetSysColor"
Def ScreenToClient(2) !"USER32","ScreenToClient"
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SetTrueColor 1
cls GetSysColor(15)
var listview&=CreateListView(%hwnd,%hinstance,-1,9356944,-1,$20)
InsertColumn listview&,"1.Spalte",120,0
InsertColumn listview&,"2.Spalte",120,0
Whileloop 50
AddString(listview&,"mit|HERZ "+str$(&loop))
wend
'Liste Tooltips
vaR LB%=CreateListBox(%hwnd,0,0,0,0,0)
Whileloop GetCount(listview&)
AddString(LB%,"Tooltip "+str$(&loop))
wend
var ToolTip&=create("Tooltip",%hwnd,listview&,"")
' Zeilenhöhe im Listview festlegen oder ermitteln und in einer Variablen speichern
' für die spätere Berechnung: Curserposition ist in Zeile
var freelist&=SetLineHeight(listview&,20)
ShowListView(listview&,10,160,400,200)
Declare ZeileO&,ZeileU&,x%,y%,xold%
Usermessages 16
while 1
GetMessage
case %umessage=16 :BREAK
GetVisibleLines(listview&,bereich#)
ZeileO&=Long(bereich#,0)'Obere sichtbare Zeile
GetCursorPos(be#)
erg&=@WindowFromPoint(Long(be#,0),Long(be#,4))
If erg&=Listview&
ScreenToClient(erg&,be#)
y&=Long(be#,4)
x%= int((Long(be#,4)/21)-1+ZeileO&)
If x%<>xold%
settext ToolTip&,%hwnd,Listview&,getstring$(LB%,x%)
xold%=x%
EndIf
EndIf
wend
DestroyWindow(%hwnd)
DestroyImageList(freelist&)
dispose be#
dispose bereich#
freedll lvdll&
end
|
|
|
| |
|
|
|
Julian Schmidt | Natürlich, allerdings fände ich den weg über LVM_SETINFOTIP besser. Schade das anscheinend keiner weiß warum diese im Beispiel nicht funktioniert [...] . |
|
|
| |
|
|
|
| Scheint auch nicht zu klappen wenn ich pszText im Unicode Format absende.
Probiere doch mal das Unicode-ListView-Control -
ich glaube Nico Madysa hatte das hier mal an verschiedenen Stellen vorgestellt -
z.B. hier ( [...] ) . |
|
|
| |
|
|
|
Julian Schmidt | Dass wird allerdings wohl kaum mit Listview.dll kompatibel sein, da nehme ich lieber die Variante von Thomas. Thx euch allen. Werds jetzt einfach einbauen. |
|
|
| |
|
|