Zjištění prvního viditelného nódu v TreeView

Funkce:
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

Zpět

Autor: The Bozena