Heim > Backend-Entwicklung > C++ > Hauptteil

Wie kann ich die optimale Auflösung für ein Vollbild-OpenGL-Fenster in Winapi (C/C) ermitteln?

Barbara Streisand
Freigeben: 2024-10-26 10:24:03
Original
109 Leute haben es durchsucht

How can I determine the optimal resolution for a fullscreen OpenGL window in Winapi (C/C  )?

Ermitteln der aktuellen Bildschirmauflösung in Winapi (C/C)

In der heutigen Welt der LCD-Bildschirme ist die Bestimmung der optimalen Auflösung für ein neu erstelltes OpenGL-Vollbildfenster von entscheidender Bedeutung für die Bereitstellung eines nahtlosen Benutzererlebnisses. Winapi bietet mehrere Methoden zum Abrufen von Informationen zur Bildschirmauflösung, die auf unterschiedliche Anwendungsfälle zugeschnitten sind.

Auflösung des primären Monitors

Um die Größe des primären Monitors zu ermitteln, können Sie die folgenden Winapi-Funktionen verwenden:

  • GetSystemMetrics(SM_CXSCREEN) für die horizontale Dimension
  • GetSystemMetrics(SM_CYSCREEN) für die vertikale Dimension

Alternativ kann hierfür auch GetDeviceCaps verwendet werden.

Kombinierte Monitorauflösung

Um die kombinierte Größe aller Monitore im System zu bestimmen, verwenden Sie:

  • GetSystemMetrics(SM_CXVIRTUALSCREEN) für die horizontale Dimension
  • GetSystemMetrics(SM_CYVIRTUALSCREEN) für die vertikale Dimension

Auflösung des Arbeitsbereichs

Für die Größe des Arbeitsbereichs (ohne Taskleiste und angedockte Leisten) auf dem primären Monitor verwenden Sie Folgendes:

  • SystemParametersInfo(SPI_GETWORKAREA)

Spezifische Monitorauflösung

So rufen Sie die Größe eines bestimmten Monitors ab (einschließlich Arbeitsbereich und Bildschirm):

  • GetMonitorInfo

Hinweis: Es ist wichtig zu bedenken, dass Monitorkoordinaten nicht immer bei 0x0 beginnen. Daher reicht die alleinige Kenntnis der Größe nicht aus, um ein Fenster genau zu positionieren. Verwenden Sie MonitorFromWindow, um den Monitor zu identifizieren, auf dem sich Ihr Fenster befindet, und rufen Sie anschließend GetMonitorInfo auf.

Low-Level-Steuerung

Um auf die Auflösungsverwaltung auf niedrigerer Ebene zuzugreifen oder die Bildschirmeinstellungen zu ändern, berücksichtigen Sie die folgenden Funktionen :

  • EnumDisplayDevices: Anzeigegeräte aufzählen
  • EnumDisplaySettings: Unterstützte Anzeigeeinstellungen aufzählen
  • ChangeDisplaySettings: Anzeigeeinstellungen ändern

Dieser Ansatz ist Besonders nützlich zum Abrufen der Bildwiederholfrequenz des Bildschirms (nicht direkt von GetDeviceCaps bereitgestellt) oder zum Anpassen der Auflösung.

Das obige ist der detaillierte Inhalt vonWie kann ich die optimale Auflösung für ein Vollbild-OpenGL-Fenster in Winapi (C/C) ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!