| |
|
|
- page 1 - |
|
Julian Schmidt | Salut, peux on irgendwie einer la ligne eines Listviews une certain Tooltip zuweisen? Salut |
|
|
| |
|
|
| |
|
- page 2 - |
|
|
| |
|
| |
|
|
|
Julian Schmidt | là venez..
faute dans Struktur- ou bien Klassendefinition CBSIZE KompilierenMarqueSéparationstruct 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 |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Julian Schmidt | Scheint toutefois pas trop marcher... KompilierenMarqueSéparationDef 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 la fois un komplettes projet hoch (si Du qui listview.dll utilise) ou bien une Voir le texte source qui sans DLL auskommt. |
|
|
| |
|
|
|
Julian Schmidt |
|
|
| |
|
|
|
Thomas Freier | avec qui Listview.dll et TTIP.pcu laisser sich doch droite simple tolle Tooltips erstellen.
ou bien sans TTIP.pcu KompilierenMarqueSéparation $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",1s=s2>)
ENDPROC
|
|
|
| |
|
|
|
Julian Schmidt | déjà, toutefois ist qui weg sur Subclassing compliqué |
|
|
| |
|
|
|
Thomas Freier | Ist naturellement aussi avec GetMessage possible. KompilierenMarqueSéparation $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
end
|
|
|
| |
|
|
|
Julian Schmidt | Bien sûr, allerdings fände Je l' weg sur LVM_SETINFOTIP besser. tant pis cela anscheinend aucun sais pourquoi cet im Beispiel pas funktioniert [...] . |
|
|
| |
|
|
|
| Scheint aussi pas trop marcher si je pszText im Unicode Format absende.
Probiere doch la fois cela Unicode-ListView-Contrôle -
je crois Nico Madysa hatte que voici la fois à verschiedenen se mettre vorgestellt -
z.B. ici ( [...] ) . |
|
|
| |
|
|
|
Julian Schmidt | Dass wird allerdings wohl à peine avec Listview.dll kompatibel son, là nehme je lieber qui variante de Thomas. Thx euch allen. Werds maintenant simple einbauen. |
|
|
| |
|
|