See if this is close to what you are looking for.
VB Code:
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 '
Private Const LB_ITEMFROMPOINT = &H1A9
Private Sub Form_Load()
'Just add some data to the listbox
FillListBox "C:\WINNT", List1
End Sub
Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lngPos As Long
Dim XX As Long
Dim YY As Long
Dim i As Integer
XX = CLng(X / Screen.TwipsPerPixelX)
YY = CLng(Y / Screen.TwipsPerPixelY)
lngPos = SendMessage(List1.hWnd, LB_ITEMFROMPOINT, 0, ByVal ((YY * 65536) + XX))
If lngPos < List1.ListCount And lngPos > -1 Then
List1.ListIndex = lngPos
List1.ToolTipText = List1.List(lngPos)
End If
End Sub
Private Sub FillListBox(ByVal InitDir As String, lstBox As ListBox)
Dim strFile As String
If Right(InitDir, 1) <> "\" Then
InitDir = InitDir & "\"
End If
strFile = Dir(InitDir)
Do While strFile <> ""
If strFile <> "." And strFile <> ".." Then
lstBox.AddItem " " & InitDir & strFile & " "
End If
strFile = Dir
Loop
End Sub