11.07.2018, 18:38
Eine kleine UDF zum andocken eines (oder mehrerer) Fenster am Bildschirmrand (bzw. an der Taskleiste).
Das funktioniert auch mit mehreren Bildschirmen.
Version 1.1.0.0 (08.07.2018):
- Auswertung jetzt mit $WM_WINDOWPOSCHANGING statt $WM_WINDOWPOSCHANGED. Kein Flackern mehr! Danke Bitnugger!
- Wegen $WM_WINDOWPOSCHANGING funktioniert jetzt das "weiterziehen" mit der Maus nicht mehr, um auf einen anderen Bildschirm zu kommen.
Deswegen habe ich jetzt einen Hotkey: <CTRL> eingebaut. Wird die CTRL-Taste während des ziehens gedrückt gehalten, so kann man das Fenster auf den anderen Bildschirm ziehen.
- Es gibt jetzt einen "magnetischen Rahmen" (50 Pixel). Wird das Fenster in diesen Bereich bewegt, wird es an den Rand gezogen.
Version 1.2.0.0 (08.07.2018):
- Die UDF nochmal komplett umgestaltet (auf globales 2D-Array). Da waren ein paar blöde Bugs drin. Danke Bitnugger!
- Eine neue Funktion "_WindowDocking_SetMagneticBorder", mit der man den "MagneticBorder" auf eine beliebige Pixelzahl einstellen kann (siehe Example).
Version 1.3.0.0 (09.07.2018):
- Es gab noch einen Fehler, wenn man ein Fenster mit eingeschalteten Docking gelöscht hat (GuiDelete). Dabei wurde die WindowProc nicht wieder auf den alten Wert gesetzt und AutoIt stürzte ab. Behoben!
- Bei der Array-Verwaltung (globales 2D-Array) war noch ein Fehler drin (falsch dimensioniert). Behoben!
- Die "CTRL-Tasten-Methode" zum verschieben auf einen anderen Bildschirm habe ich jetzt doch standardmäßig auf die "Zwei-Maustasten-Methode" umgestellt. Das Fenster nur mit der Maus zu verschieben ist doch benutzerfreundlicher.
- In Version v3.3.14.5 von AutoIt gibt es die Konstanten $SM_CXSIZEFRAME und $SM_CYSIZEFRAME, deshalb ist die zusätzliche Definition überflüssig.
- Das Beispiel öffnet jetzt 3 Fenster und man kann jedes Fenster einzeln konfigurieren.
Version 1.4.0.0 (11.07.2018):
- Wenn man ein Docking-Fenster auf einen zweiten Bildschirm geschoben hat und das Fenster minimiert und dann wieder restored hat, dann wurde es auf dem Hauptbildschirm "festgehalten". Behoben!
- Es gibt eine neue Funktion "_WindowDocking_SetVisible" (damit wird das Fenster auf dem am naechsten liegenden Bildschirm zentriert, wenn sich das Fenster außerhalb des Desktopbereichs befindet).
- Die Abfrage der rechten Maustaste (zum vorübergehenden ausschalten des Dockings) übernimmt jetzt die Funktion "_RMBpressed()". Im Gegensatz zu "_isPressed" wird damit die virtuelle (statt der physikalischen) rechte Maustaste abgefragt.
- Das Beispielscript "WindowDocking_Example.au3" um ein Beispiel für die neue Funktion erweitert.
Das funktioniert auch mit mehreren Bildschirmen.
Version 1.1.0.0 (08.07.2018):
- Auswertung jetzt mit $WM_WINDOWPOSCHANGING statt $WM_WINDOWPOSCHANGED. Kein Flackern mehr! Danke Bitnugger!
- Wegen $WM_WINDOWPOSCHANGING funktioniert jetzt das "weiterziehen" mit der Maus nicht mehr, um auf einen anderen Bildschirm zu kommen.
Deswegen habe ich jetzt einen Hotkey: <CTRL> eingebaut. Wird die CTRL-Taste während des ziehens gedrückt gehalten, so kann man das Fenster auf den anderen Bildschirm ziehen.
- Es gibt jetzt einen "magnetischen Rahmen" (50 Pixel). Wird das Fenster in diesen Bereich bewegt, wird es an den Rand gezogen.
Version 1.2.0.0 (08.07.2018):
- Die UDF nochmal komplett umgestaltet (auf globales 2D-Array). Da waren ein paar blöde Bugs drin. Danke Bitnugger!
- Eine neue Funktion "_WindowDocking_SetMagneticBorder", mit der man den "MagneticBorder" auf eine beliebige Pixelzahl einstellen kann (siehe Example).
Version 1.3.0.0 (09.07.2018):
- Es gab noch einen Fehler, wenn man ein Fenster mit eingeschalteten Docking gelöscht hat (GuiDelete). Dabei wurde die WindowProc nicht wieder auf den alten Wert gesetzt und AutoIt stürzte ab. Behoben!
- Bei der Array-Verwaltung (globales 2D-Array) war noch ein Fehler drin (falsch dimensioniert). Behoben!
- Die "CTRL-Tasten-Methode" zum verschieben auf einen anderen Bildschirm habe ich jetzt doch standardmäßig auf die "Zwei-Maustasten-Methode" umgestellt. Das Fenster nur mit der Maus zu verschieben ist doch benutzerfreundlicher.
- In Version v3.3.14.5 von AutoIt gibt es die Konstanten $SM_CXSIZEFRAME und $SM_CYSIZEFRAME, deshalb ist die zusätzliche Definition überflüssig.
- Das Beispiel öffnet jetzt 3 Fenster und man kann jedes Fenster einzeln konfigurieren.
Version 1.4.0.0 (11.07.2018):
- Wenn man ein Docking-Fenster auf einen zweiten Bildschirm geschoben hat und das Fenster minimiert und dann wieder restored hat, dann wurde es auf dem Hauptbildschirm "festgehalten". Behoben!
- Es gibt eine neue Funktion "_WindowDocking_SetVisible" (damit wird das Fenster auf dem am naechsten liegenden Bildschirm zentriert, wenn sich das Fenster außerhalb des Desktopbereichs befindet).
- Die Abfrage der rechten Maustaste (zum vorübergehenden ausschalten des Dockings) übernimmt jetzt die Funktion "_RMBpressed()". Im Gegensatz zu "_isPressed" wird damit die virtuelle (statt der physikalischen) rechte Maustaste abgefragt.
- Das Beispielscript "WindowDocking_Example.au3" um ein Beispiel für die neue Funktion erweitert.
Hinweise:
Ich benutze für den Arduino die Arduino-IDE.
Für AutoIt benutze ich die aktuelle AutoIt-Version sowie SciTE4AutoIt3.
Eine Hilfe kann ich nur auf Basis dieser Software leisten.
Ich benutze für den Arduino die Arduino-IDE.
Für AutoIt benutze ich die aktuelle AutoIt-Version sowie SciTE4AutoIt3.
Eine Hilfe kann ich nur auf Basis dieser Software leisten.