Const LB_LB_ITEMFROMPOINT = &H1A9
Сообщение LB_ITEMFROMPOINT получает индекс строки списка, ближайшей к заданной точке
В успешном случае возвращается индекс строки, содержащийся в младшем слове. Старшее слово равно 0
' Узнаем индекс строки под курсором ' Поместите на форму список List1 и метку Label1 Private Sub List1_MouseMove(Button As Integer, _ Shift As Integer, X As Single, Y As Single) Dim lRet As Long ' индекс строки ' Координаты точки под курсором Dim lXPos As Long Dim lYPos As Long ' Конвертируем твипы в пикселы lXPos = CLng(X / Screen.TwipsPerPixelX) lYPos = CLng(Y / Screen.TwipsPerPixelY) ' Получаем индекс строки, ближайшей к курсору lRet = SendMessage(List1.hWnd, LB_ITEMFROMPOINT, 0, ByVal _ ((lYPos * 65536) + lXPos)) If lRet < List1.ListCount Then Label1.Caption = "Текущее значение индекса: " & lRet ' Выводим строку как подсказку. Используйте ' этот способ, если ширина списка слишком мала, ' чтобы вместить длинную строку List1.ToolTipText = List1.List(lRet) End If End Sub