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