devxlogo

ListBoxItemFromPoint – The index of a ListBox item at given coordinates

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 LongPrivate 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 SubFunction 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

See also  Why ChatGPT Is So Important Today
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist