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

1

28.02.2010, 15:11

Vollbildmodus

Hallo,
mein Spiel ist in C# programmiert. Es ist 2D und benutzt zur Grafikausgabe Funktionen aus System.Drawing (GDI+).

Wie kann ich am besten einen Vollbildmodus hinbekommen?
Der gängige Vorschlag ist: Auflösung ändern, Taskleiste ausblenden, Programm in den Vordergrund

Aber das kommt mir nicht ideal vor.. Gibts da andere Möglichkeiten?
Ich habe schon probiert ein Direct3D Device zu erstellen, welches nur die Auflösung ändert und somit den Vollbildmodus ermöglicht.. Aber dann werden sachen, die per GDI+ gezeichnet werden nicht mehr angezeigt..

Hier die Umsetzung: http://nopaste.info/2a405bcbde.html
MfG

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

2

28.02.2010, 15:32

Also wenn du forms benutzt, einfach von anfang an maximieren... dann noch als POPUP-window (weiß gerade nicht ob das geht aber da müsste es sowas geben, dass der Standartwindowsrand verschwindet) erstellen und schon haste vollbild. ( wenn du willst kannst du es auch noch als TOPMOST erstellen, dann is es immer oben )

3

28.02.2010, 15:37

Danke für die Antwort.
Das Fenster ist bereits randlos und fix auf die Größe 1024x768 eingestellt. Daher muss man für einen Vollbildmodus auf jeden Fall die Auflösung ändern.. Damit entspricht das wieder dem "gängigen Vorschlag" von dem ich gesprochen habe..
Was gäbe es sonst noch für Möglichkeiten?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

28.02.2010, 15:58

http://www.vesic.org/english/blog/winforms/full-screen-maximize/

und

http://msdn.microsoft.com/en-us/library/dd183411%28VS.85%29.aspx

5

28.02.2010, 16:05

Zerhaut es einem nicht den ganzen Desktop (Icons an anderen Positionen etc), wenn man mit ChangeDisplaySettings die Auflösung ändert?
Und sie wird nicht automatisch zurückgeändert, wenn das Programm abstürzt oder?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

28.02.2010, 16:07

Zitat von »"revan"«

Zerhaut es einem nicht den ganzen Desktop (Icons an anderen Positionen etc), wenn man mit ChangeDisplaySettings die Auflösung ändert?
Und sie wird nicht automatisch zurückgeändert, wenn das Programm abstürzt oder?


Das liegt aber nicht an ChangeDisplaySettings, sondern weil du die Auflösung änderst. Da ist es vollkommen egal wie das gemacht wird, du musst dein Programm eben entsprechend absichern.

7

28.02.2010, 16:12

Aber wenn per DirectX die Auflösung geändert wird, und das Programm abstürzt wird die normale Auflösung wiederhergestellt. Das mit dem Abstürzen ist ja noch abzusichern.

Aber wenn man einfach so die Auflösung auf 1024x768 stellt und danach wieder auf einen höheren Wert, sind die Symbole auf dem Desktop völlig anders angeordnet.. Das möchte ich keinem User antun..

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

28.02.2010, 16:39

Zitat von »"revan"«


Aber wenn man einfach so die Auflösung auf 1024x768 stellt und danach wieder auf einen höheren Wert, sind die Symbole auf dem Desktop völlig anders angeordnet.. Das möchte ich keinem User antun..


Das Verhalten kann ich bei mir nicht beobachten... Wie auch immer. Du wirst vermutlich keinen anderen Weg für Windows finden.

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

9

28.02.2010, 16:43

Mach einfach Fullscreen so wie wir es beschrieben haben, berechne die relative streckung/stauchung zu deiner Screengröße und hau in jede Drawoperation diesen Faktor rein... und schon haste variable screengrößen...^^

10

28.02.2010, 17:17

Das wäre leider ein unglaublicher Aufwand..
Mir würde es besser gefallen, Direct3D für diesen Zweck zu missbrauchen.. Zumal ich DirectX sowieso schon verwende (DirectSound)

Meine Umsetzung aus dem 1.Post funktioniert aber nicht. Hat jemand eine Idee woran das liegen könnte?

Werbeanzeige