#include #include #include #include #include Global $idTreeview Global Const $TVM_SETITEM = $TV_FIRST + 13 Example() Func Example() GUICreate("My GUI with treeview", 320, 215) ; Local $idTreeview = GUICtrlCreateTreeView(6, 6, 200, 150, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE) $idTreeview = GUICtrlCreateTreeView(5, 5, 310, 150, BitOR($TVS_CHECKBOXES, $TVS_FULLROWSELECT, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE) Local $idA1 = GUICtrlCreateTreeViewItem("A1",$idTreeview) Local $idA2 = GUICtrlCreateTreeViewItem("A2",$idTreeview) Local $idA3 = GUICtrlCreateTreeViewItem("A3",$idTreeview) Local $idA4 = GUICtrlCreateTreeViewItem("A4",$idTreeview) Local $idB1 = GUICtrlCreateTreeViewItem("B1",$idTreeview) Local $idB2 = GUICtrlCreateTreeViewItem("B2",$idTreeview) Local $idB3 = GUICtrlCreateTreeViewItem("B3",$idTreeview) Local $idB4 = GUICtrlCreateTreeViewItem("B4",$idTreeview) Local $idButtonAll = GUICtrlCreateButton("All" , 5, 185, 35, 20) Local $idButtonCheckA = GUICtrlCreateButton("A only" , 40, 185, 60, 20) Local $idButtonCheckB = GUICtrlCreateButton("B only" ,100, 185, 60, 20) Local $idButtonViewAll = GUICtrlCreateButton("View All",160, 185, 60, 20) Local $idButtonViewSel = GUICtrlCreateButton("View Sel",220, 185, 60, 20) Local $idButtonClose = GUICtrlCreateButton("Close" ,280, 185, 35, 20) Local $idA1_view = False Local $idA2_view = False Local $idA3_view = False Local $idA4_view = False Local $idB1_view = False Local $idB2_view = False Local $idB3_view = False Local $idB4_view = False GUISetState(@SW_SHOW) Local $idMsg ; Loop until the user exits. While 1 $idMsg = GUIGetMsg() Select Case $idMsg = $idButtonClose Or $idMsg = $GUI_EVENT_CLOSE ExitLoop Case $idMsg = $idButtonAll ConsoleWrite("Button ALL" & @CRLF) _CheckThis($idA1) _CheckThis($idA2) _CheckThis($idA3) _CheckThis($idA4) _CheckThis($idB1) _CheckThis($idB2) _CheckThis($idB3) _CheckThis($idB4) Case $idMsg = $idButtonCheckA ConsoleWrite("Button A" & @CRLF) GUICtrlDelete($idTreeview) $idTreeview = GUICtrlCreateTreeView(5, 5, 310, 150, BitOR($TVS_CHECKBOXES, $TVS_FULLROWSELECT, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE) $idA1 = GUICtrlCreateTreeViewItem("A1",$idTreeview) $idA2 = GUICtrlCreateTreeViewItem("A2",$idTreeview) $idA3 = GUICtrlCreateTreeViewItem("A3",$idTreeview) $idA4 = GUICtrlCreateTreeViewItem("A4",$idTreeview) _CheckThis($idA1) _CheckThis($idA2) _CheckThis($idA3) _CheckThis($idA4) Case $idMsg = $idButtonCheckB ConsoleWrite("Button B" & @CRLF) GUICtrlDelete($idTreeview) $idTreeview = GUICtrlCreateTreeView(5, 5, 310, 150, BitOR($TVS_CHECKBOXES, $TVS_FULLROWSELECT, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE) $idB1 = GUICtrlCreateTreeViewItem("B1",$idTreeview) $idB2 = GUICtrlCreateTreeViewItem("B2",$idTreeview) $idB3 = GUICtrlCreateTreeViewItem("B3",$idTreeview) $idB4 = GUICtrlCreateTreeViewItem("B4",$idTreeview) _CheckThis($idB1) _CheckThis($idB2) _CheckThis($idB3) _CheckThis($idB4) Case $idMsg = $idButtonViewAll ConsoleWrite("View All" & @CRLF) $idA1_view = False $idA2_view = False $idA3_view = False $idA4_view = False $idB1_view = False $idB2_view = False $idB3_view = False $idB4_view = False ;Save current state If BitAND(GUICtrlRead($idA1),$GUI_CHECKED) Then $idA1_view = True If BitAND(GUICtrlRead($idA2),$GUI_CHECKED) Then $idA2_view = True If BitAND(GUICtrlRead($idA3),$GUI_CHECKED) Then $idA3_view = True If BitAND(GUICtrlRead($idA4),$GUI_CHECKED) Then $idA4_view = True If BitAND(GUICtrlRead($idB1),$GUI_CHECKED) Then $idB1_view = True If BitAND(GUICtrlRead($idB2),$GUI_CHECKED) Then $idB2_view = True If BitAND(GUICtrlRead($idB3),$GUI_CHECKED) Then $idB3_view = True If BitAND(GUICtrlRead($idB4),$GUI_CHECKED) Then $idB4_view = True GUICtrlDelete($idTreeview) $idTreeview = GUICtrlCreateTreeView(5, 5, 310, 150, BitOR($TVS_CHECKBOXES, $TVS_FULLROWSELECT, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE) $idA1 = GUICtrlCreateTreeViewItem("A1",$idTreeview) $idA2 = GUICtrlCreateTreeViewItem("A2",$idTreeview) $idA3 = GUICtrlCreateTreeViewItem("A3",$idTreeview) $idA4 = GUICtrlCreateTreeViewItem("A4",$idTreeview) $idB1 = GUICtrlCreateTreeViewItem("B1",$idTreeview) $idB2 = GUICtrlCreateTreeViewItem("B2",$idTreeview) $idB3 = GUICtrlCreateTreeViewItem("B3",$idTreeview) $idB4 = GUICtrlCreateTreeViewItem("B4",$idTreeview) If $idA1_view Then GuiCtrlSetState($idA1,$GUI_CHECKED) If $idA2_view Then GuiCtrlSetState($idA2,$GUI_CHECKED) If $idA3_view Then GuiCtrlSetState($idA3,$GUI_CHECKED) If $idA4_view Then GuiCtrlSetState($idA4,$GUI_CHECKED) If $idB1_view Then GuiCtrlSetState($idB1,$GUI_CHECKED) If $idB2_view Then GuiCtrlSetState($idB2,$GUI_CHECKED) If $idB3_view Then GuiCtrlSetState($idB3,$GUI_CHECKED) If $idB4_view Then GUICtrlSetState($idB4,$GUI_CHECKED) Case $idMsg = $idButtonViewSel ConsoleWrite("View Sel => ") ConsoleWrite(@CRLF) $idA1_view = False $idA2_view = False $idA3_view = False $idA4_view = False $idB1_view = False $idB2_view = False $idB3_view = False $idB4_view = False ;Save current state If BitAND(GUICtrlRead($idA1),$GUI_CHECKED) Then $idA1_view = True If BitAND(GUICtrlRead($idA2),$GUI_CHECKED) Then $idA2_view = True If BitAND(GUICtrlRead($idA3),$GUI_CHECKED) Then $idA3_view = True If BitAND(GUICtrlRead($idA4),$GUI_CHECKED) Then $idA4_view = True If BitAND(GUICtrlRead($idB1),$GUI_CHECKED) Then $idB1_view = True If BitAND(GUICtrlRead($idB2),$GUI_CHECKED) Then $idB2_view = True If BitAND(GUICtrlRead($idB3),$GUI_CHECKED) Then $idB3_view = True If BitAND(GUICtrlRead($idB4),$GUI_CHECKED) Then $idB4_view = True GUICtrlDelete($idTreeview) $idTreeview = GUICtrlCreateTreeView(5, 5, 310, 150, BitOR($TVS_CHECKBOXES, $TVS_FULLROWSELECT, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE) If $idA1_view Then $idA1 = GUICtrlCreateTreeViewItem("A1",$idTreeview) If $idA2_view Then $idA2 = GUICtrlCreateTreeViewItem("A2",$idTreeview) If $idA3_view Then $idA3 = GUICtrlCreateTreeViewItem("A3",$idTreeview) If $idA4_view Then $idA4 = GUICtrlCreateTreeViewItem("A4",$idTreeview) If $idB1_view Then $idB1 = GUICtrlCreateTreeViewItem("B1",$idTreeview) If $idB2_view Then $idB2 = GUICtrlCreateTreeViewItem("B2",$idTreeview) If $idB3_view Then $idB3 = GUICtrlCreateTreeViewItem("B3",$idTreeview) If $idB4_view Then $idB4 = GUICtrlCreateTreeViewItem("B4",$idTreeview) If $idA1_view Then GuiCtrlSetState($idA1,$GUI_CHECKED) If $idA2_view Then GuiCtrlSetState($idA2,$GUI_CHECKED) If $idA3_view Then GuiCtrlSetState($idA3,$GUI_CHECKED) If $idA4_view Then GuiCtrlSetState($idA4,$GUI_CHECKED) If $idB1_view Then GuiCtrlSetState($idB1,$GUI_CHECKED) If $idB2_view Then GuiCtrlSetState($idB2,$GUI_CHECKED) If $idB3_view Then GuiCtrlSetState($idB3,$GUI_CHECKED) If $idB4_view Then GUICtrlSetState($idB4,$GUI_CHECKED) EndSelect WEnd GUIDelete() EndFunc Func _CheckThis($handle) GUICtrlSetState($handle,$GUI_CHECKED) EndFunc Func _UncheckThis($handle) GUICtrlSetState($handle,$GUI_UNCHECKED) EndFunc