Rubrik: Maus & Tastatur | 09.05.01 |
SetCapture-Funktion Diese Funktion bindet alle Mausbewegungen an ein bestimmtes Fensterobjekt. Alle Mausbewegungen lösen bei diesem Objekt ein Mausmove-Ereignis aus. | ||
Betriebssystem: Win95, Win98, WinNT, Win2000, WinME | Views: 15.511 |
Beschreibung:
Diese Funktion bindet alle Mausbewegungen an ein bestimmtes Fensterobjekt. Alle Mausbewegungen lösen bei diesem Objekt ein Mausmove-Ereignis aus. Alle Objekte wie z.B. Commandbuttons oder Bildfelder, die eine "hwnd"-Eigenschaft haben, sind gültige Objekte.
Deklaration:
Private Declare Function SetCapture Lib "user32.dll" (ByVal hwnd As Long) As Long
Parameter:
hwnd | Das Handle des Fensters/des Objektes, welches die Mausereignisse empfangen soll. |
Rückgabewert:
Die Funktion gibt das Handle des Fensters/des Objektes zurück, welches zuvor die Mausereignisse "abgefangen" hat. Existiert kein solches Objekt, wird NULL zurückgegeben.
Beispiel:
Private Declare Function SetCapture Lib "user32.dll" (ByVal hwnd As Long) As Long Private Declare Function GetCapture Lib "user32.dll" () As Long Private Declare Function ReleaseCapture Lib "user32.dll" () As Long Private Declare Function SetFocusWnd Lib "user32.dll" _ Alias "SetFocus" ( _ ByVal hwnd As Long) As Long
' Dieses Beispiel zeigt wie man mit der "SetCapture" Funktion ein ' MouseIn & MouseOut Ereigniss erzeugen kann, so wie das bei JAVA ' Controls der Fall ist. Bitte plazieren sie mehrer CommandButtons ' mit gleichem Namen und unterschiedlichen Index auf die Form. Private Sub Form_Load () ScaleMode = vbTwips End Sub
Private Sub Command1_MouseMove(Index As Integer, Button As Integer, _ Shift As Integer, X As Single, Y As Single) With Command1(Index) ' Befindet sich die Maus über dem Commandbutton ? If X >= 0 And Y >= 0 And X <= .Width And Y <= .Height Then SetCapture .hWnd .FontBold = True Else ' Wenn nicht, Capture lösen ReleaseCapture .FontBold = False End If ' Beispiel für GetCapture SetFocusWnd GetCapture End With End Sub