|
Tipp 0245
|
ListBox-Eintrag unter Mauscursor ermitteln
|
|
|
Autor/Einsender: Datum: |
|
Detlev Schubert 09.06.2002 |
|
Entwicklungsumgebung: |
|
VB 5 |
|
|
Mit der API-Funktion SendMessage lässt sich der Eintrag in einer ListBox
ermitteln, der sich unter dem Mauscursor befindet.
|
|
|
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
Const LB_ITEMFROMPOINT = &H1A9
Private Sub Form_Load()
With List1
.AddItem "Ferrari"
.AddItem "Jaguar/Cosworth"
.AddItem "Jordan/Honda"
.AddItem "McLaren/Mercedes"
.AddItem "Sauber/Petronas"
.AddItem "Williams/BMW"
.ListIndex = 0
End With
End Sub
Private Sub List1_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
Dim PX As Long
Dim PY As Long
Dim Param As Long
Dim Index As Long
PX = List1.Parent.ScaleX(X, List1.Parent.ScaleMode, vbPixels)
PY = List1.Parent.ScaleY(Y, List1.Parent.ScaleMode, vbPixels)
Param = CLng(PX) + &H10000 * CLng(PY)
Index = SendMessage(List1.hwnd, LB_ITEMFROMPOINT, 0, ByVal Param)
If Index < List1.ListCount Then
Label1.Caption = " " & List1.List(Index)
Else
Label1.Caption = ""
End If
End Sub
|
|
|
|
|
Windows-Version |
95 |
|
|
98/SE |
|
|
ME |
|
|
NT |
|
|
2000 |
|
|
XP |
|
|
Vista |
|
|
Win
7 |
|
|
|
VB-Version |
VBA 5 |
|
|
VBA 6 |
|
|
VB 4/16 |
|
|
VB 4/32 |
|
|
VB 5 |
|
|
VB 6 |
|
|
|
|
Download (2,8 kB)
|
Downloads bisher: [ 1356 ]
|
|
|