FirstNodeTree




Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Private Const TV_FIRST = &H1100
Private Const TVM_GETNEXTITEM = (TV_FIRST + 10)
Private Const TVM_SELECTITEM = (TV_FIRST + 11)
Private Const TVGN_CARET = 9
Private Const TVGN_FIRSTVISIBLE = &H5
' Return the first visible node of a TreeView

Function GetTreeViewFirstVisibleNode(ByVal TV As TreeView) As Node
Dim hItem As Long
Dim selNode As Node

' remember the node currently selected

Set selNode = TV.SelectedItem
' get the handle of the first visible Node

hItem = SendMessage(TV.hWnd, TVM_GETNEXTITEM, TVGN_FIRSTVISIBLE, ByVal 0&)
' make it the selected Node

SendMessage TV.hWnd, TVM_SELECTITEM, TVGN_CARET, ByVal hItem
' return the result as a Node object

Set GetTreeViewFirstVisibleNode = TV.SelectedItem
' restore node that was selected

Set TV.SelectedItem = selNode

End Function











( firstnodetree.html )- by Paolo Puglisi - Modifica del 17/12/2023