VB-Homepage Tipp 117

Mausbereich einschränken

Mit diesem Tipp, ist es Ihnen fortan möglich, bei bestimmten Aktionen, den Mauszugang auf einen vorbestimmten Bereich einzuschränken.
Dies kann recht nützlich sein, damit entfiele ggf. das Ausblenden von im Moment nicht möglichen Aktionen, da die Maus ja nicht auf den entsprechenden Button zugreifen kann o.ä.

Gehen Sie dazu folgender Maßen vor.

1. Anlegen eines neuen VB-Projektes
Anpassen der Formgröße an Ihre Vorstellung

2. Fügen Sie dem Abschnitt Allgemein/Deklarationen diesen Code hinzu.
Option Explicit
Dim dl&, fCHidden&, fCClipped&, fTxtHidIt&
Private Type POINTAPI
   X As Long
   Y As Long
End Type

Private Type RECT
   Left As Long
   Top As Long
   Right As Long
   Bottom As Long
End Type

Private Declare Function ClientToScreen& Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI)
Private Declare Function ClipCursor& Lib "user32" (lpRect As RECT)
Private Declare Function ClipCursorBynum& Lib "user32" Alias "ClipCursor" (ByVal lpRect As Long)
Private Declare Function SetCursorPos& Lib "user32" (ByVal X As Long, ByVal Y As Long)

3. Setzen Sie den Wert für die Form-Eigenschaft "ScaleMode" auf "3-Pixel"

4. Fügen Sie der Form zwei Command-Button hinzu.
(Command1 & Command2)
Setzen Sie Command1.Caption auf "Aufheben" und Command2.Caption auf "Setzen"

5. Fügen Sie Command1 in der Aktion Click folgenden Code hinzu.
If fCClipped& = True Then
   dl& = ClipCursorBynum&(0)
   fCClipped& = False
   Form1.Refresh
End If

6. Fügen Sie Command2 in der Aktion Click folgenden Code hinzu.
Dim myRect As RECT, myPoint As POINTAPI
myPoint.X = 0
myPoint.Y = 0
dl& = ClientToScreen&(Form1.hwnd, myPoint)
myRect.Top = myPoint.Y
myRect.Left = myPoint.X
myRect.Right = myRect.Left + Form1.ScaleWidth
myRect.Bottom = myRect.Top + Form1.ScaleHeight
dl& = ClipCursor&(myRect)
fCClipped& = True
Form1.DrawWidth = 2
Form1.Line (1, 1)-(Form1.ScaleWidth - 1, Form1.ScaleHeight - 1), , B
Form1.DrawWidth = 1

7. Starten Sie das Projekt

Tipp-Download

Quelle : Dan Appleman's "Win32-API"

Zurück zur Übersichtsseite