Visual Basic - Technik, FAQ, Tricks, Beispiele

Home / System / Maus u. Kbd. / Idle

Maus-Ereignisse ignorieren

Impressum
Kontakt
DSVGO
Mit folgender Routine können alle wartenden Maus-Ereignisse aus der Nachrichtenschlange entfernt werden. Dies ist z.B. sinnvoll, um unerwünschte Klicks zu vermeiden.
'Deklarationsteil:
Type POINTAPI
  X As Long
  Y As Long
End Type
Type MSG
  hwnd As Long
  message As Long
  wParam As Long
  lParam As Long
  time As Long
  pt As POINTAPI
End Type
Declare Function PeekMessageA Lib "user32" ( _
    lpMsg As MSG, ByVal hWnd As Long, _
    ByVal wMsgFilterMin As Long, _
    ByVal wMsgFilterMax As Long, _
    ByVal wRemoveMsg As Long) As Long
Const PM_REMOVE = &H1
Const WM_MOUSEFIRST = &H200
Const WM_MOUSELAST = &H209

'Prozedur:
Sub MouseIdle(ByVal hWnd As Long)
  Dim x As MSG
  Do While PeekMessageA( _
      x, hWnd, WM_MOUSEFIRST, _
      WM_MOUSELAST, PM_REMOVE)
  Loop
End Sub

Übersetzung eines Artikels von Francesco Balena (VB2TheMax).

© Jost Schwider, 26.06.2000-26.06.2000 - http://vb-tec.de/mausidle.htm