Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

11

28.02.2010, 18:06

Zitat von »"revan"«

Das wäre leider ein unglaublicher Aufwand..
Mir würde es besser gefallen, Direct3D für diesen Zweck zu missbrauchen..


Wieso? ChangeDisplaySettings macht genau das was es soll. Mit DirectX hast du höchstens zusätzliche Probleme mit der Interoperabilität zu GDI.

12

28.02.2010, 20:44

Ich habe es mal ausporbiert:
Meine Auflösung ist 1920x1200. In einem C# Programm ändere ich per ChangeDisplaySettings die Auflösung auf 1024x768. Beim Beenden dieses Programmes stelle ich wieder per ChangeDisplaySettings die Auflösung zurück auf 1920x1200.

Ergebnis: Alle Icons auf dem Desktop sind verschoben.
Ich benutze übrigens Windows 7, aber ich glaube das ist unerheblich..

Und ja, ich habe mit meinem geposteten Code Probleme mit der Interoperabilität.. Weisst du vielleicht eine Lösung?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

13

28.02.2010, 21:19

Zitat von »"revan"«

Ich habe es mal ausporbiert:
Meine Auflösung ist 1920x1200. In einem C# Programm ändere ich per ChangeDisplaySettings die Auflösung auf 1024x768. Beim Beenden dieses Programmes stelle ich wieder per ChangeDisplaySettings die Auflösung zurück auf 1920x1200.

Ergebnis: Alle Icons auf dem Desktop sind verschoben.
Ich benutze übrigens Windows 7, aber ich glaube das ist unerheblich..


Kann ich leider hier nicht nachvollziehen. Und um ehrlich zu sein, irgendwas machst du anscheinend grundlegend falsch. Es gibt zig Programme die diese Funktionalität erfolgreich nutzen.

14

28.02.2010, 21:30

Also ich glaube nicht, dass irgendein Spiel ChangeDisplaySettings verwendet.. Aber probier es selber mal aus: Schiebe Icons auf deinem Desktop ganz nach rechts, ändere die Auflösung auf einen kleineren Wert und wieder zurück: Die Icons sind total verschoben..

Die meisten Spiele benutzen zum Ändern der Auflösung DirectX oder OpenGL vermute ich..

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

15

28.02.2010, 21:49

Zitat von »"revan"«

Also ich glaube nicht, dass irgendein Spiel ChangeDisplaySettings verwendet.. Aber probier es selber mal aus: Schiebe Icons auf deinem Desktop ganz nach rechts, ändere die Auflösung auf einen kleineren Wert und wieder zurück: Die Icons sind total verschoben..

Die meisten Spiele benutzen zum Ändern der Auflösung DirectX oder OpenGL vermute ich..


OpenGL hat überhaupt keinen Einfluss auf die Auflösung des Bildschirms, daher werden alle Windows Anwendungen die OpenGL verwenden und im Vollbild laufen ChangeDisplaySettings nutzen. Quake3 zum Beispiel nutzt definitiv ChangeDisplaySettings um in den Vollbildmodus zu schalten.

Und ich hab' deinen Versuchsaufbau mal ausprobiert, bei mir passen die Icons danach trotzdem!

16

28.02.2010, 22:53

WTF? Ich glaube ich mache echt was falsch.. Könntest du vl. den Code, mit dem du die Auflösung änderst, posten?

17

28.02.2010, 23:10

Oh nein, ich bin so eine Niete! Ich hatte in meinem Code stehen: CDS_FULLSCREEN = 0x00000001 aber dieser Wert entspricht CDS_UPDATEREGISTRY..

Ich fasse es nicht! Danke fürs Aufmerksam machen!!
Jetzt mache ich den Vollbildmodus natürlich mit der Funktion ChangeDisplaySettings!

18

01.03.2010, 11:19

Ich beispielweise kenne keine Programme in der Windowoberfläche, welche veränderungen an der Auflösung vornehmen.
Benutze docvh einfach die Auflösung, welche eingestellt ist. Du kannt diese über GetSytemMetrics ermitteln und dann an dein Fenster übergeben.
So würde ich das machen.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

19

01.03.2010, 12:07

Zitat von »"Andi0310"«

Ich beispielweise kenne keine Programme in der Windowoberfläche, welche veränderungen an der Auflösung vornehmen.


Nahezu jedes Computerspiel macht das...

20

02.03.2010, 17:32

Ich bezog dies eigentlich eher auf den Desktop auf welchem ja die Fenster ausgeführt werden.

Werbeanzeige