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
 
Weitere Links zum Thema
Einträge suchen
Längere Einträge als ToolTipText anzeigen

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: [ 1262 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 4. Juni 2011