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

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: VB4/32,VB5,VB6
Expertise: Intermediate
Dec 13, 2000

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


ListBoxItemFromPoint - The index of a ListBox item at given coordinates

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
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _
    Any, dest As Any, ByVal numBytes As Long)
Const LB_ITEMFROMPOINT = &H1A9

' Return the index of a ListBox item at given coordinates
' X and Y are in pixels and relative to the ListBox's upperleft corner
' 
' This is similar to the HitTest method of the ListView control
'
' Here an example that shows the index of the item under the cursor
'   Private Sub List1_MouseMove(Button As Integer, Shift As Integer,
'  '        X As Single, Y As Single)
'      Label1 = ListBoxItemFromPoint(List1, '      ScaleX(X, vbTwips, vbPixels),
'  ScaleY(Y, vbTwips, vbPixels))
'   End Sub

Function ListBoxItemFromPoint(lb As ListBox, ByVal X As Long, _
    ByVal Y As Long) As Long
    Dim lParam As Long

    ' lParam must contain X in its low-order word
    ' and Y in its high-order word.
    ' filling the low-order word is easy
    lParam = X
    ' We need this method to avoid overflow.
    CopyMemory ByVal VarPtr(lParam) + 2, Y, 2

    ListBoxItemFromPoint = SendMessage(lb.hwnd, LB_ITEMFROMPOINT, 0, _
        ByVal lParam)
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