erfordert effektiv die Positionierung von Fenstern über mehrere Monitore hinweg mit SetWindowPos
erfordert ein nuanciertes Verständnis der Systemanzeigekonfiguration und des virtuellen Bildschirmkonzepts.
Systemanzeigekonfiguration:
Der Ursprung des Primärmonitors ist (0, 0). Sekundärmonitore haben negative X -Koordinaten (links von primär) oder positiven X -Koordinaten (rechts von 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 Monitorbreiten und ihre Höhe ist die Höhe des höchsten Monitors.
erhalten
Screen
Nutzung der Klasse:
Screen
Die
Screen.FromHandle(hwnd)
Screen.GetBounds(rect)
Screen.DeviceName
Verwenden native Win32 -Funktionen:
Diese Funktionen bieten alternative Methoden zur Überwachungsidentifizierung:
MonitorFromWindow
MonitorFromPoint
MonitorFromRect
SetWindowPos
Positionierung von Fenstern mit
SetWindowPos
Aus Befolgen Sie die folgenden Schritte, um ein Fenster auf einem bestimmten Monitor mit
Identifizieren Sie den Zielmonitor: hMonitor
Erhalten Sie die
Berechnen Sie die virtuellen Bildschirmkoordinaten:
Passen Sie die X -Koordinate des Fensters anhand der Monitorposition relativ zum Primärmonitor an. Subtrahieren Sie die Gesamtbreite der vorhergehenden Monitore für diejenigen links von der Primär- und Fügen Sie die Gesamtbreite der vorhergehenden Monitore und die Primär für diejenigen nach rechts hinzu.
SetWindowPos
Verwenden Sie : SetWindowPos
Verwenden Sie die berechneten virtuellen Bildschirmkoordinaten innerhalb des
<code class="language-c++">SetWindowPos(hwnd, hWndInsertAfter, x, y, cx, cy, SWP_NOZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);</code>
Wenn Sie die Anzeigeanordnung des Systems sorgfältig berücksichtigen und diese Techniken anwenden, können Sie Fenster auf jedem Monitor innerhalb eines Multi-Monitor-Setups mit SetWindowPos
.
Das obige ist der detaillierte Inhalt vonWie kann ich Fenster mithilfe von SetWindowPos über mehrere Monitore hinweg positionieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!