Browse Source

Bildschirmmitte und BildschirmGröße basieren jetzt auf Monitoren und nehmen den index eines Monitors als zusätzliches Argument

Kolja Strohm 5 years ago
parent
commit
339fd559d7
2 changed files with 12 additions and 13 deletions
  1. 9 10
      Punkt.cpp
  2. 3 3
      Punkt.h

+ 9 - 10
Punkt.cpp

@@ -1,5 +1,6 @@
 #include "Punkt.h"
 #ifdef WIN32
+#include "Bildschirm.h"
 #include "Fenster.h"
 #endif
 
@@ -7,23 +8,21 @@ using namespace Framework;
 
 // andere Funktionen 
 #ifdef WIN32
-inline Punkt Framework::BildschirmGröße() // Gibt die Größe des Bildschirms zurück
+inline Punkt Framework::BildschirmGröße( int mId ) // Gibt die Größe des Bildschirms zurück
 {
-    RECT r;
-    GetWindowRect( GetDesktopWindow(), &r );
-    return Punkt( r.right, r.bottom );
+    Monitor m = getMonitor( mId );
+    return Punkt( m.x, m.y );
 }
 
-inline Punkt Framework::Bildschirmmitte() // Giebt die Mitte des Bildschirms zurück
+inline Punkt Framework::Bildschirmmitte( int mId ) // Giebt die Mitte des Bildschirms zurück
 {
-    RECT r;
-    GetWindowRect( GetDesktopWindow(), &r ); // Bildschirmgröße herausfinden
-    return Punkt( r.right / 2, r.bottom / 2 );
+    Monitor m = getMonitor( mId );
+    return Punkt( m.x + m.breite / 2, m.y + m.height / 2 );
 }
 
-inline Punkt Framework::Bildschirmmitte( WFenster *f ) // Giebt die Mitte des Bildschirms zurück
+inline Punkt Framework::Bildschirmmitte( WFenster *f, int mId ) // Giebt die Mitte des Bildschirms zurück
 {
-    Punkt p = Bildschirmmitte();
+    Punkt p = Bildschirmmitte( mId );
     Punkt p2 = f->getGröße();
     f->release();
     return{ p.x - p2.x / 2, p.y - p2.y / 2 };

+ 3 - 3
Punkt.h

@@ -14,12 +14,12 @@ namespace Framework
 
 #ifdef WIN32
     // Gibt die Größe des Bildschirms zurück
-    __declspec( dllexport ) Punkt BildschirmGröße();
+    __declspec( dllexport ) Punkt BildschirmGröße( int mId = 0 );
     // Giebt die Mitte des Bildschirms zurück
-    __declspec( dllexport ) Punkt Bildschirmmitte();
+    __declspec( dllexport ) Punkt Bildschirmmitte( int mId = 0 );
     // Giebt einen Punkt zurück, der als Fensterposition verwendet werden kann um das Fenster zu zentrieren
     //  f: Das Fenster, welches Zentriert werden soll
-    __declspec( dllexport ) Punkt Bildschirmmitte( WFenster *f );
+    __declspec( dllexport ) Punkt Bildschirmmitte( WFenster *f, int mId = 0 );
 #endif
     // Prüft, ob ein Punkt weiter rechts unten ist als ein anderer
     //  return: (true), wenn der linke Punkt weiter rechts und weiter unten ist. (false) sonnst