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


What We Should Expect from Cell Phone Tech in the Near Future
The earliest cell phones included boxy designs full of buttons and antennas, and they only made calls. Needless to say, we’ve come a long way from those classic brick phones