ListIconGadget: Header abfragen ohne Callback
Verfasst: 13.01.2009 22:26
Hier eine weitere Spielerei. Wer keinen Callback hat oder will oder ..., aber trotzdem einen Mausklick auf den Header abfragen will.
z.B. für Sortieren oder was auch immer
z.B. für Sortieren oder was auch immer
Code: Alles auswählen
Enumeration
#win1
#but1
#lvg1
EndEnumeration
hwnd = OpenWindow(#win1,0,0,640,480,"ListIcon Gadget",#PB_Window_SystemMenu|1)
CreateGadgetList(hwnd)
ButtonGadget(#but1,10,420,80,25,"Tue nix")
idnr1 = ListIconGadget(#lvg1,10,12,300,400,"bla 0",150,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
AddGadgetColumn(#lvg1,1,"Spalte 1",150)
AddGadgetColumn(#lvg1,2,"Spalte 2",55)
AddGadgetColumn(#lvg1,3,"Spalte 3",255)
head1 = SendMessage_(idnr1, #LVM_GETHEADER, #Null, #Null)
For i = 1 To 62
nr$ = LSet(Str(i),3," ")
txt$ = "Text in Zeile "+nr$+" in Spalte 1"+#LF$+"Spalte 2"+#LF$+"Spalte 3"
AddGadgetItem(#lvg1, -1, txt$)
Next
;=====================================================
Repeat
event = WaitWindowEvent()
If event = #WM_LBUTTONDOWN ;513
If GetCapture_() = head1
GetCursorPos_(p.POINT)
MapWindowPoints_(0,head1,p,1)
HD_HitInfo.HD_HITTESTINFO
HD_Hitinfo\pt\x = p\x
HD_HitInfo\pt\y = p\y
SendMessage_(head1,#HDM_HITTEST,0,HD_HitInfo)
mouseclickhead1 = HD_hitinfo\iitem
Debug "Head1: Spalte " + Str(mouseclickhead1)
EndIf
ElseIf Event = #PB_Event_Gadget Or Event = #PB_Event_Menu
welcherButton = EventGadget()
Select welcherButton
Case #but1: Debug "Button 1 gedrückt"
Case #lvg1
If EventType() = #PB_EventType_LeftClick
GetCursorPos_(p.POINT)
MapWindowPoints_(0,idnr1,p,1)
HitInfo.LVHITTESTINFO
Hitinfo\pt\x = p\x
HitInfo\pt\y = p\y
SendMessage_(idnr1,#LVM_SUBITEMHITTEST ,0,HitInfo)
mouseclickrow = hitinfo\iitem
mouseclickcol = hitinfo\isubitem
EndIf
EndSelect
EndIf
Until event = #PB_Event_CloseWindow
End