Die Fenster über mehrere Monitore über setWindowpos
sind ein nuanciertes Verständnis der Systemanzeigekonfiguration und des virtuellen Bildschirmkonzepts effektiv zu positionieren.
System Display -Konfiguration:
Der Ursprung des primären Monitors ist (0, 0). Sekundärmonitore haben negative X -Koordinaten (links von primären) oder positiven X -Koordinaten (rechts von der Primär).
Der virtuelle Bildschirm:
Dies ist eine konzeptionelle Anzeige, die alle verbundenen Monitore umfasst. Sein Ursprung ist die obere linke Ecke des linken Monitors. Seine Breite ist die Summe aller Überwachungsbreiten, und seine Höhe ist die Höhe des höchsten Monitors.
nutzt die
screen class:
Die
screen
screen.fromhandle (hwnd)
screen.getBounds (rect)
screen.devicename unter Verwendung der einheimischen Win32 -Funktionen:
Diese Funktionen bieten alternative Methoden zur Überwachungsidentifikation:
MonitorFromWindow
MonitorFrompoint
MonitorFromRect Positionierung Windows mit
setWindowpos koordinaten
, um ein Fenster auf einem bestimmten Monitor mit
setWindowpos
Identifizieren Sie den Zielmonitor: Erhalten Sie die
Hmonitor
Berechnen Sie die virtuellen Bildschirmkoordinaten:
Passen Sie die X -Koordinate des Fensters anhand der Monitorposition relativ zum primären Monitor an. Subtrahieren Sie die Gesamtbreite der vorhergehenden Monitore für diejenigen links von der Primäranlage und fügen Sie die Gesamtbreite der vorhergehenden Monitore und die Primär für diese rechts hinzu.
verwenden
setWindowpos : die berechneten virtuellen Bildschirmkoordinaten innerhalb der
setWindowpos
SetWindowPos(hwnd, hWndInsertAfter, x, y, cx, cy, SWP_NOZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
Indem Sie die Anzeigevereinbarung des Systems sorgfältig berücksichtigen und diese Techniken anwenden, können Sie Fenster auf jedem Monitor innerhalb eines Multi-Monitor-Setups mit
setWindowpos
. .
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3