GetTreeViewFirstVisibleNode – Retrieve the first visible node in a TreeView

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _    hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _    lParam As Any) As LongPrivate Const TV_FIRST = &H1100Private Const TVM_GETNEXTITEM = (TV_FIRST + 10)Private Const TVM_SELECTITEM = (TV_FIRST + 11)Private Const TVGN_CARET = 9Private Const TVGN_FIRSTVISIBLE = &H5' Return the first visible node of a TreeViewFunction 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

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: