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 ' set the first visible Node of a TreeView control Sub SetTreeViewFirstVisibleNode(ByVal TV As TreeView, ByVal Node As Node) Dim hItem As Long Dim selNode As Node ' remember the node currently selected Set selNode = TV.SelectedItem ' make the Node the select Node in the control Set TV.SelectedItem = Node ' now we can get its handle hItem = SendMessage(TV.hWnd, TVM_GETNEXTITEM, TVGN_CARET, ByVal 0&) ' restore node that was selected Set TV.SelectedItem = selNode ' make it the fist visible Node SendMessage TV.hWnd, TVM_SELECTITEM, TVGN_FIRSTVISIBLE, ByVal hItem End Sub |