Seite 1 von 1

Windows 10 und Fenstergröße

Verfasst: 04.04.2017 07:57
von kartmanne
HI,

das größte Fenster meines pb-Programms hat die Pixelgröße 700*950. Das erstelle und compiliere ich auf XP. Sowohl auf XP,W7 und auch W8 paßt das proportional "richtig" in die Bildschirmgrößen. W10 hab ich nicht und kann es nicht testen. Nun bekomme ich eine Meldung eines Freundes, der mein Programm auf W10 laufen läßt. Er schreibt, dass der Bildschirm die Auflösung von 3200*1800 hat und das größte Fenster meines Programms paßt in der Höhe nicht auf den Bildschirm. Ich habe eine Abfrage im Programm, die eine "zu kleine" Bildschirmgröße per Messagerequester anzeigt - in seinem Falle aber nicht.

Was kann er tun, damit das Fenster doch voll angezeigt wird - oder was muß ich programmieren, dass es geht?

EDIT: pb5.50

Re: Windows 10 und Fenstergröße

Verfasst: 04.04.2017 08:08
von STARGÅTE
Bei der Größenangabe des Fensters in OpenWindow() gibst du die "innere" Fenstergröße an, also ohne die Ränder und den Fensterkopf.

Windows 10 hat vermutlich ziemlich große Ränder, sodass es damit zu groß wird.
Du kannst die "außere" Größe deines Fenster ermitteln indem zu WindowHeight() mit dem Flag #PB_Window_FrameCoordinate nutzt. So bekommst du raus, wie groß dein Fenster wirklich wird, wenn du diese und jene innere Größe vergibst.
Du kannst diesen Übergang dann erst mal für ein kleines Fenster ermitteln und dann für das größte berücksichtigen.

Re: Windows 10 und Fenstergröße

Verfasst: 04.04.2017 08:45
von kartmanne
HI,

mein Fenster hat die (innere) Höhe 950, der W10-Bildschirm ist 1800 hoch - ich glaube nicht wirklich an einen W10-Fensterrand in der Größenordnung von 900 Pixel...

Ich denke eher, dass das Fenster irgendwie mit Faktor 2 angezeigt wird - ich weiß aber nicht, wer da was einstellen muß, dass es paßt. Ich trage nach, dass der Bildschirm ein 13,3"-Schirm sein soll.

edit: ok, dann hab ich schonmal den Hinweis, dass mein Fenstergrößenwarner nur die innere Fenstergröße anzeigt, denn das von Dir beschriebene flag kannte ich bis heute nicht.

Re: Windows 10 und Fenstergröße

Verfasst: 04.04.2017 09:10
von GPI
Das Problem ist nicht der Rahmen des Fensters, sondern das ein Scale-Factor in Windows aktiviert ist - vermutlich 200%. Der Monitor ist höchst wahrscheinlich sehr hochauflösend und alte Programme, die das nicht beachten, würden ansonsten ewig kleine Fenster erzeugen, die unbedienbar sind. Dein Programm erzeugt also kein 900 Pixel hohes Fenster, sondern 1800 Pixel. PB unterstützt von sich aus keine Möglichkeit, diesen Scallierungsfaktor zu umgehen.

Re: Windows 10 und Fenstergröße

Verfasst: 04.04.2017 15:18
von _JON_
950 Pixel als Höhe ist aber auch etwas daneben :shock:
Das würden hier nur die Desktops schaffen, meisten unserer Laptops würden es nicht komplett anzeigen können.

Re: Windows 10 und Fenstergröße

Verfasst: 04.04.2017 21:57
von es_91
So müsstest Du den Scaling-Faktor unter Windows abrufen können:

Code: Alles auswählen

dc=GetDC_(#Null)

#DefaultDPIX=96.0
#DefaultDPIY=96.0

If dc
	lpx=GetDeviceCaps_(dc,#LOGPIXELSX)
	lpy=GetDeviceCaps_(dc,#LOGPIXELSY)
	If lpx>0
		ScaleDPIx=lpx/#DefaultDPIX
	EndIf
	If lpy>0
		ScaleDPIy=lpy/#DefaultDPIY
	EndIf
	ReleaseDC_(#Null,dc)
EndIf

debug ScaleDPIx
debug ScaleDPIy
Quelle: http://www.purebasic.fr/english/viewtop ... 12&t=40507