Option ExplicitPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _ hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As LongType RECT Left As Long Top As Long Right As Long Bottom As LongEnd TypePrivate Const TV_FIRST = &H1100Private Const TVM_GETITEMRECT = (TV_FIRST + 4)' Return the binding rectangle for the TreeView item whose' handle is passed in the second argument. If the 3rd argument' is True it returns the bounding rectangle for the text portion' of the node, otherwise it returns the bounding rectangle for' the entire row.'' The result rectangle isn't clipped to the TreeView's visibile portion' Coordinates are relative to the TreeView's client area'' You can use this routine to determine the node under the mouse ' cursor, or to precisely move a textbox or a combobox over a given node.Function GetTreeViewNodeRect(ByVal TV As TreeView, ByVal hItem As Long, _ Optional IncludeTextOnly As Boolean) As RECT Dim lpRect As RECT ' the function expects in input the handle of the item ' at the beginning of the RECT structure lpRect.Left = hItem If SendMessage(TV.hWnd, TVM_GETITEMRECT, IncludeTextOnly, lpRect) Then ' a non-zero value means that the item is visible GetTreeViewNodeRect = lpRect End IfEnd Function


Different Types of Data Models Explained with Examples
In the modern world, data is everything and everywhere. With so much access to technology, data has become a valuable resource for any business. Albeit a complex one. Data is