Rubrik: Oberfläche · Effekte | VB-Versionen: VB4, VB5, VB6 | 21.03.02 |
Fenster verschieben - mit Magnetrand-Effekt Dieses Beispiel zeig, wie sich ein Magnetband-Effekt realisieren lässt, wenn ein Fenster an den Bildschirmrand verschoben wird. | ||
Autor: Sven | Bewertung: | Views: 23.593 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Kennen sie Winamp? Die Fenster dieses Programms kann man verschieben, ohne Titelzeile. Das hatten wir ja schon als Tipp.
Kennen sie den Magnetrand, mit dem die Fenster am Bildschirmrand angeordnet werden? Mit der entsprechenden API klappt auch das. Ist halt ein bisschen aufwändig.
Mit nachfolgendem Tipp funktioniert das alles auch ohne irgendwelche API-Funktionen.
Erstellen Sie hierzu ein neues Projekt, setzen für die Form BorderStyle = 0 - kein und plazieren auf die Form einen CommandButton cmdExit. Fügen Sie anschließend nachfolgenden Code in den Codeteil der Form:
Option Explicit ' Variablen für die aktuellen ' Mauskoordianten Private s_X As Long Private s_Y As Long
Private Sub Form_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single) ' aktuelle Maus-Koordinaten merken s_X = X: s_Y = Y End Sub
' Form verschieben Private Sub Form_MouseMove(Button As Integer, _ Shift As Integer, X As Single, Y As Single) Dim lPos As Long If Button > 0 Then ' Position links lPos = Me.Left + X - s_X If lPos < 350 Then lPos = 0 If lPos > Screen.Width - 350 - Me.Width Then _ lPos = Screen.Width - Me.Width Me.Left = lPos ' Position oben lPos = Me.Top + Y - s_Y If lPos < 350 Then lPos = 0 If lPos > Screen.Height - 350 - Me.Height Then _ lPos = Screen.Height - Me.Height Me.Top = lPos End If End Sub
Private Sub cmdExit_Click() ' Beenden Unload Me End End Sub
Starten Sie das Projekt und ziehen die Form langsam an eines der Bildschirmränder. Hierzu einfach auf einen freien Bereich der Form klicken und die Form bei gedrückter Maustaste verschieben. Kurz bevor die Form den Bildschirmrand erreicht, setzt der Magneteffekt ein. Aber probieren Sie es am besten selbst aus.