Hallo Leute.
Folgende Frage.
Ihr habt es bestimmt schon mal bei WinAmp oder Skype gesehen, dass die Fenster, wenn sie an den Rand des Monitors bewegt werden, wie magnetisch an den Rand springen.
Wie kann man so etwas realisieren?
Schönen Gruß.
Hallo Leute.
Folgende Frage.
Ihr habt es bestimmt schon mal bei WinAmp oder Skype gesehen, dass die Fenster, wenn sie an den Rand des Monitors bewegt werden, wie magnetisch an den Rand springen.
Wie kann man so etwas realisieren?
Schönen Gruß.
Du musst nur laufend mit WinGetPos die Position des Fenster überprüfen und diese mit den Bildschirmmassen vergleichen. Bei Unterschreiten eines Schwellenwertes verschiebst du danach das Fenster mit WinMove,
mfg autoBert
Davor musst du jedoch auch noch ständig das aktive Fenster ermitteln.
Oh oh. Da hab ich mir ja was eingebrockt.
Ob ich das alleine hinbekomme?
*Entf
Hier mal ein kleines Beispiel...
Wenn das Fenster 50 oder weniger Pixel vom linken oder rechten Rand entfernt ist, wird es an die Kante geschoben.
Eigentlich ganz einfach.
$h_GUI = GUICreate ("Magnet", 400, 200)
[/autoit][autoit][/autoit][autoit]GUISetState (@SW_SHOW, $h_GUI)
[/autoit][autoit][/autoit][autoit]While True
$nMsg = GUIGetMsg (1)
$aPos = WinGetPos ($h_GUI) ; <== Positition abfragen
Select
Case $nMsg[0] = -3
Exit
Case $aPos[0] <= 50 ; linker Rand
WinMove ($h_GUI, "", 0, $aPos[1])
Case $aPos[0] + $aPos[2] >= @DesktopWidth - 50 ; rechter Rand
WinMove ($h_GUI, "", @DesktopWidth - $aPos[2], $aPos[1])
EndSelect
WEnd
Vielleicht hilft auch das: DockIt
Oder vielleicht hier: http://www.autoitscript.com/forum/topic/24342-form-snap oder hier: http://www.autoitscript.com/forum/topic/12…w-alignment-udf
Gruß,
UEZ
Cool Das liebe ich an diesem Forum.
Du stellst eine Frage und wirst mit Antworten erschlagen.
Danke Leute.