Hi,
ich möchte die Message des TreeGadgets für das an- oder abwählen der Checkbox abfangen, um diese in einen CallBack zu verarbeiten.
Bislang habe ich nicht rausgefunden welche Message vom TreeGadget dabei gesendet wird.
TreeGadget Messages für Checkbox abfangen
Das brauche ich um die Subitems des angeklickten Eintrags an- bzw. abzuwählen.
Wenn ich einen Parent-Eintrag anwähle müssen alle subitems auch angewählt werden. Wenn ich aber nicht weiß welcher Parent-Eintrag angewählt wurde geht das nicht oder ich muß alle Einträge bei jedem linksklick überprüfen.
Wenn ich einen Parent-Eintrag anwähle müssen alle subitems auch angewählt werden. Wenn ich aber nicht weiß welcher Parent-Eintrag angewählt wurde geht das nicht oder ich muß alle Einträge bei jedem linksklick überprüfen.
MfG Jake
Ich habe dir mal ein Beispiel-Code gebastelt. Der ist zwar noch etwas fehlerhaft (bevor die Haken gesetzt/entfernt werden können muss erst das Item markiert werden ect.
), aber das sollte dich schon mal etwas weiterbringen.
Mfg DerProgger

Code: Alles auswählen
EnableExplicit
Define a, Event, ItemPos, SubLevel, ItemState
Define Pos.POINT
If Not OpenWindow(0,0,0,355,180,"TreeGadget",#PB_Window_SystemMenu | #PB_Window_ScreenCentered): End: EndIf
If Not CreateGadgetList(WindowID(0)): End: EndIf
TreeGadget(0,1,1,WindowWidth(0),WindowHeight(0),#PB_Tree_CheckBoxes)
For a = 0 To 10
AddGadgetItem(0,-1,"Node " + Str(a),0,0)
AddGadgetItem(0,-1,"Sub-Item 1",0,1)
AddGadgetItem(0,-1,"Sub-Item 1",0,2)
AddGadgetItem(0,-1,"Sub-Item 2",0,2)
AddGadgetItem(0,-1,"Sub-Item 3",0,2)
AddGadgetItem(0,-1,"Sub-Item 4",0,2)
AddGadgetItem(0,-1,"Sub-Item 2",0,1)
AddGadgetItem(0,-1,"Sub-Item 1",0,2)
AddGadgetItem(0,-1,"Sub-Item 2",0,2)
AddGadgetItem(0,-1,"Sub-Item 3",0,2)
AddGadgetItem(0,-1,"Sub-Item 4",0,2)
AddGadgetItem(0,-1,"Sub-Item 3",0,1)
AddGadgetItem(0,-1,"Sub-Item 1",0,2)
AddGadgetItem(0,-1,"Sub-Item 2",0,2)
AddGadgetItem(0,-1,"Sub-Item 3",0,2)
AddGadgetItem(0,-1,"Sub-Item 4",0,2)
AddGadgetItem(0,-1,"Sub-Item 4",0,1)
AddGadgetItem(0,-1,"Sub-Item 1",0,2)
AddGadgetItem(0,-1,"Sub-Item 2",0,2)
AddGadgetItem(0,-1,"Sub-Item 3",0,2)
AddGadgetItem(0,-1,"Sub-Item 4",0,2)
Next
Repeat
Event = WaitWindowEvent()
If Event = #WM_LBUTTONDOWN
GetCursorPos_(@Pos)
If WindowFromPoint_(Pos\x,Pos\y) = GadgetID(0)
ItemPos = GetGadgetState(0)
SubLevel = GetGadgetItemAttribute(0,ItemPos,#PB_Tree_SubLevel)
ItemState = GetGadgetItemState(0,ItemPos)
ItemPos + 1
While ItemPos <= CountGadgetItems(0)
If GetGadgetItemAttribute(0,ItemPos,#PB_Tree_SubLevel) > SubLevel
SetGadgetItemState(0,ItemPos,ItemState)
Else
Break
EndIf
ItemPos + 1
Wend
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
End