devxlogo

GetTreeViewNodeRect – The bounding rectangle of a TreeView’s node

GetTreeViewNodeRect – The bounding rectangle of a TreeView’s node

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

devx-admin

Share the Post: