Tree View Nodes - Expanded?

BlitzPlus Forums/BlitzPlus Programming/Tree View Nodes - Expanded?

MattVonFat(Posted 2004) [#1]
How do you tell whether a tree view node is expanded or not? I want to be able to know so that the folder icon shows a different icon if its open.


soja(Posted 2004) [#2]
Here's an example I had laying around:
; Example code: Is the selected TreeView node currently expanded?
; For Win95 & NT4, IE5 needs to be installed

; .lib "user32.dll"
; SendMessage%(hwnd%, wMsg%, wParam%, lParam%):"SendMessageA"

Const TV_FIRST = $1100
Const TVM_GETNEXTITEM = TV_FIRST + 10
Const TVM_GETITEMSTATE = TV_FIRST + 39
Const TVIS_EXPANDED = $20
Const TVGN_CARET = $9

w = CreateWindow("TreeView isExpanded Example", 10, 10, 300, 300, 0, 9)
tv = CreateTreeView(0, 0, ClientWidth(w), ClientHeight(w), w)
tvRoot = AddTreeViewNode("Root", TreeViewRoot(tv))
tv1 = AddTreeViewNode("1", tvRoot)
tv2 = AddTreeViewNode("2", tv1)
tv3 = AddTreeViewNode("3", tv2)
tv4 = AddTreeViewNode("4", tvRoot)

Repeat
	Select WaitEvent()
		Case $803
			End
		Case $401
			Select EventSource()
				Case tv
					If isExpanded(tv) Then
						SetStatusText(w, "Expanded")
					Else
						SetStatusText(w, "Not Expanded")
					EndIf
				Default
					SetStatusText(w, "")
			End Select
	End Select
Forever

Function isExpanded(tv)
	selectedNodeHwnd% = SendMessage(QueryObject(tv,1), TVM_GETNEXTITEM, TVGN_CARET, 0)
	Return TVIS_EXPANDED And SendMessage(QueryObject(tv,1), TVM_GETITEMSTATE, selectedNodeHwnd, TVIS_EXPANDED)
End Function



MattVonFat(Posted 2004) [#3]
Thanks very much!