Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB4/32,VB5,VB6
Expertise: Intermediate
Sep 18, 1999

GetTreeViewNodeRect - The bounding rectangle of a TreeView's node

Option Explicit

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

Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Const TV_FIRST = &H1100
Private 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 If
End Function
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date