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
 
 
  Function GetTreeViewFirstVisibleNode(ByVal TV As TreeView) As Node   Dim hItem As Long   Dim selNode As Node         Set selNode = TV.SelectedItem      hItem = SendMessage(TV.hWnd, TVM_GETNEXTITEM, TVGN_FIRSTVISIBLE, ByVal 0&)      SendMessage TV.hWnd, TVM_SELECTITEM, TVGN_CARET, ByVal hItem      Set GetTreeViewFirstVisibleNode = TV.SelectedItem      Set TV.SelectedItem = selNode    End Function |