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 TVM_GETNEXTITEM = &H110APrivate Const TVGN_CARET = 9' The handle of any node in a TreeView'' While VB developers reason in terms of Node objects, TreeView ' nodes are stored and referenced internally using 32-bit handles, ' and when you want to pass a reference to a Node in a API call you ' must pass the handle to it. The problem is that there is no easy ' way to get an arbitrary node's handle, and you can only get ' (or set) the handle of the selected node and a few others.'' However, we can get this information if we cheat a little, ' by temporarily selecting the node and then restoring the original ' selected node. This is very fast and the user won't notice any flickering. Function GetTreeViewNodeHandle(ByVal TV As TreeView, Node As Node) As Long Dim selNode As Node ' remember the node currently selected Set selNode = TV.SelectedItem ' select the new node Set TV.SelectedItem = Node ' send a message to retrieve the handle of current node GetTreeViewNodeHandle = SendMessage(TV.hWnd, TVM_GETNEXTITEM, TVGN_CARET, _ ByVal 0&) ' restore the node that was selected Set TV.SelectedItem = selNodeEnd Function


Top Software Development Companies in USA
Navigating the tech landscape to find the right partner is crucial yet challenging. This article offers a comparative glimpse into the top software development companies