|
|
Title | Make a ListBox automatically select the item under the mouse in Visual Basic 6 |
Description | This example shows how to make a ListBox automatically select the item under the mouse in Visual Basic 6. |
Keywords | ListBox, select, autoselect, ClientToScreen, LBItemFromPt |
Categories | Controls, API |
|
|
The ItemUnderMouse function returns the index of the item under the mouse. It uses the ClientToScreen API function to convert the (X, Y) coordinates of a point in the ListBox's coordinate system into screen coordinates. It then calls the LBItemFromPt API function to get the index of the item at that point.
|
|
' Return the index of the item under the mouse.
Public Function ItemUnderMouse(ByVal list_hWnd As Long, _
ByVal X As Single, ByVal Y As Single)
Dim pt As POINTAPI
pt.X = X \ Screen.TwipsPerPixelX
pt.Y = Y \ Screen.TwipsPerPixelY
ClientToScreen list_hWnd, pt
ItemUnderMouse = LBItemFromPt(list_hWnd, pt.X, pt.Y, _
False)
End Function
|
|
The ListBox's MouseMove event handler calls ItemUnderMouse to see what item is under the mouse and then selects it.
|
|
' Select the item under the mouse.
Private Sub List1_MouseMove(Button As Integer, Shift As _
Integer, X As Single, Y As Single)
List1.ListIndex = ItemUnderMouse(List1.hwnd, X, Y)
End Sub
|
|
|
|
|
|