Heim >Backend-Entwicklung >C++ >Wie kann ich Fenster mithilfe von SetWindowPos über mehrere Monitore hinweg positionieren?

Wie kann ich Fenster mithilfe von SetWindowPos über mehrere Monitore hinweg positionieren?

Susan Sarandon
Susan SarandonOriginal
2025-01-30 18:31:08796Durchsuche

How to Correctly Position Windows Across Multiple Monitors Using SetWindowPos?

setwindowpos

verwenden setWindowPosition -Code -Fragment legt nur die Fensterposition auf die Hauptanzeige fest.

Verstehen Sie die Anzeige des Displays und des virtuellen Bildschirms

In der Multi -Display -Umgebung verfügt das Display über ein bestimmtes Layout und Koordinaten:

Hauptbildschirm:
    Die obere linke Ecke befindet sich in der Anzeige (0, 0).
  • Die linke Anzeige: Es hat negative X -Koordinaten.
  • Rechtsanzeige: Es gibt eine positive X -Koordinate, der ursprüngliche Punkt des Bildschirms ist der Hauptbildschirm des Bildschirms und die Summe der Vorderbildschirmbreite einschließlich des Hauptbildschirms.
  • Berechnung der Bildschirmkoordinaten
  • Um die Fensterposition auf einer bestimmten Anzeige festzulegen, müssen wir die richtige X -Koordinate basierend auf dem Bildschirmlayout berechnen.

Verwenden Sie das Bildschirmobjekt

.NET -Bildschirmklasse stellte mehrere Methoden zur Verfügung, um den aktuell vom Fenster angezeigten Bildschirm zu bestimmen:

Bildschirm.FromControl (Steuerung)

Bildschirm.FromHandle (Fensterhandle)

    Bildschirm.Frompoint (Punkt)
  • screen.fromrctangle (rechteck)
  • Diese Methoden geben das Bildschirmobjekt zurück, das den größten Teil des angegebenen Elements enthält.
  • Rufen Sie den Hmonitor -Handle ab
  • .NET Reference Quell -Anzeige können Sie den Hmonitor -Handle des Bildschirmobjekts erhalten, indem Sie die Methode
  • gethashcode () des Objekts aufrufen. Alternativ können Sie native Win32 -Funktionen wie MonitorFromWindow oder MonitorFrompoint verwenden, um den Hmonitor -Griff abzurufen.
  • Lösung

Basierend auf dem Verständnis der Anzeigelayout- und Bildschirmkoordinaten können Sie die SetWindowPosition -Methode wie folgt ändern:

Diese aktualisierte Methode verwendet einen Monitorindex als zusätzlichen Parameter und berechnet die entsprechende X -Koordinate basierend auf dem Bildschirmlayout.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn