Aktuelle Desktop-Größe ändern - wie?

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Aktuelle Desktop-Größe ändern - wie?

Beitrag von Kaeru Gaman »

Jetzt stell ich auch mal ne Anfänger-Frage.

wie ändere ich die aktuelle Desktop-Größe?
..und vielleicht auch die Farbtiefe?
wie ermittele ich sie überhaupt?

Ich will ein Vollbild-Fenster mit nem WindowedScreen drin machen,
der soll ne vorgegebene größe haben und NICHT ge-AutoStretch-t werden.

also will ich beim programm-start die Desktop-Größe anpassen,
und beim programm-ende wieder zurückstellen.

ich weiss, dass es irgendwie gehen muss, weil viele games das so machen..

wenn Ihr natürlich jetzt 100 gute argumente bringt, warum man das nicht machen soll,
probiere ichs mit AutoStretch, aber interessieren würde es mich trotzdem.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag von GPI »

UM HIMMELS WILLEN: LASS DIE FINGER VON DER DESKTOPAUFLÖSUNG UND FARBTIEFE!!!!!!!!!!!!!!!!!

Ich würde dich verfluchen, wenn ich jedes mal meine Icons wieder neu anordnen darf...
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

GPI hat geschrieben:UM HIMMELS WILLEN: LASS DIE FINGER VON DER DESKTOPAUFLÖSUNG UND FARBTIEFE!!!!!!!!!!!!!!!!!

Ich würde dich verfluchen, wenn ich jedes mal meine Icons wieder neu anordnen darf...
LOL, wohl fast jedes OpenGL game benutzt diese Technik. Und wer sagt, dass sich da die Icons verschieben sollen?

Naja egal:

Code: Alles auswählen

;Eigenschaften
#WindowWidth = 1024
#WindowHeight = 768
;Wir müssen andere Flags verwenden, damit das Fenster richtig in den Vollbildmodus wechselt.
#WindowFlags = #WS_POPUP | #WS_CLIPCHILDREN | #WS_CLIPSIBLINGS

; Nun ändern wir die Bildschirmeinstellungen mit einem DEVMODE

dmScreenSettings.DEVMODE
dmScreenSettings\dmSize = SizeOf(dmScreenSettings)
dmScreenSettings\dmPelsWidth = 1024 ;Bildschirmbreite
dmScreenSettings\dmPelsHeight = 768 ;Bildschirmhöhe
dmScreenSettings\dmBitsPerPel = 16 ;Bildschirmtiefe
dmScreenSettings\dmFields = 262144 | 524288 | 1048576

If ChangeDisplaySettings_(@dmScreenSettings, 4) <> 0 ;Wenn etwas schief geht...
End ;... einfach beenden
EndIf

If OpenWindow(0, 0, 0, #WindowWidth, #WindowHeight, #WindowFlags, "") ;Fenster öffnen
 OpenWindowedScreen...
..
EndIf 
sollte Funktionieren.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@GPI

es muss aber gehen, ohne dass die icons sich verschieben....

ich kenne games, wenn man die verlässt sieht man kurz nen 800x600 screen,
halt nur den oberen linken ausschnitt des normalen Desktop sozusagen,
und dann flipt der wieder in die 1024x768 und alle icons sind so wie vorher.

... du musst mich nicht für so blöd halten, dass ich die icons durcheinanderbringen will...

das mag ich selber nicht!

@DarkDragon

many thnx :allright:

...werd ich gleich mal antesten.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

ermitteln ist schonmal kein problem, das geht über die Desktop*() befehle die in pb integriert sind.

verändern solltest du sie aber besser nicht... wer sowas bei mir macht und mir so meine schön sortierten icons durcheinander wirbelt, fängt sich einen bösen voodoo-fluch ein ;)

edit: ja, desktop auflösung!=bildschirm auflösung... in der pureare gibt es sogar ein beispiel, mit dem man die "virtuelle" desktopauflösung ändert, dann kann/muß man den desktop scrollen
Benutzeravatar
Creature
Beiträge: 678
Registriert: 29.08.2004 00:55
Wohnort: Frankfurt/Main

Beitrag von Creature »

GPI hat geschrieben:Ich würde dich verfluchen, wenn ich jedes mal meine Icons wieder neu anordnen darf...
das kann ich bestätigen!
ist mir in den letzten 24 stunden 2 mal passiert...beim 2. mal hätte ich fast in die tischplatte gebissen vor wut.
ich habe zig icons auf dem desktop. einige sind jetzt noch nicht wieder da, kommen erst nach nem neustart wieder zum vorschein.

es gibt ein tool, das sich die positionen der icons merkt und alles sofort wieder herstellen kann, habe aber leider vergessen wie es heisst.

hat jemand ne idee wie man es selber programmiert?
Bildung kommt von Bildschirm und nicht von Buch, sonst hieße es ja Buchung.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Zaphod hat geschrieben:edit: ja, desktop auflösung!=bildschirm auflösung... in der pureare gibt es sogar ein beispiel, mit dem man die "virtuelle" desktopauflösung ändert, dann kann/muß man den desktop scrollen
das hört sich gut an, damit könnte ich ja die virtuelle auf den alten wert setzen,
und die angezeigte verändern.

vielleicht macht DD's beispiel das auch, ich blick da noch nicht ganz durch.

ich hab auch nen hinweis auf ne routine von J-the-Gray (war das nicht Redacid?) erhalten,
das blick ich aber auch noch nicht...
Zuletzt geändert von Kaeru Gaman am 27.02.2005 18:36, insgesamt 2-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
crossroads
Beiträge: 244
Registriert: 29.08.2004 05:41
Wohnort: Rhine Main Area

Beitrag von crossroads »

Creature hat geschrieben: es gibt ein tool, das sich die positionen der icons merkt und alles sofort wieder herstellen kann, habe aber leider vergessen wie es heisst.
IconSaver - Shareware ($ 5,00)
Man soll die Tür aufmachen, bevor man durchgeht ...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@DarkDragon

DEVMODE ist eine vordefinierte Struktur?

und die übergeb ich anscheinend per pointer an ne api, seh ich das richtig?

#WS_CLIPCHILDREN kenn ich zwar noch nicht, aber ist klar:
child-wins werden auf die win-grösse geclipt.

#WS_CLIPSIBLINGS... was sind siblings? ist das ein überbegriff für Gadgets & Co.?

und welche bedeutung haben die parameter dmFields?

mal probieren, ob das wirklich das verschieben der Icons verhindert...
solange das nicht sicher ist, werd ich auch niemanden zum testen auffordern...
-------------------------------------------------------------------------------------
@Zaphod

meinst du dieses:
PureArea hat geschrieben:; by Danilo, 21.07.2003 - german forum
;
; Beispiel für ein Realtime-Resize eines Fensters mit einem ScrollAreaGadget
; wo die ScrollArea die Größe des DESKTOPs hat.
hilft mir nicht wirklich... aber danke..
Zuletzt geändert von Kaeru Gaman am 27.02.2005 18:46, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Creature
Beiträge: 678
Registriert: 29.08.2004 00:55
Wohnort: Frankfurt/Main

Beitrag von Creature »

crossroads hat geschrieben:
Creature hat geschrieben: es gibt ein tool, das sich die positionen der icons merkt und alles sofort wieder herstellen kann, habe aber leider vergessen wie es heisst.
IconSaver - Shareware ($ 5,00)
thx crossroads, kommt wie gerufen... :allright:
Bildung kommt von Bildschirm und nicht von Buch, sonst hieße es ja Buchung.
Antworten