Page 1 sur 1

Résolution d'écran

Publié : jeu. 03/juil./2008 19:05
par Vlad
Il existe un moyen de connaitre la résolution actuelle de l'écran grâce aux fonctions de la famille "Desktop" (DesktopWidth, DesktopHeight).
Mais peut-on changer la résolution d'écran au début d'un programme utilisant essentiellement un écran non graphique (OpenWindow et non OpenScreen).
Merci à celui ou ceux qui voudront bien me répondre si possible par un court exemple de code.

M E R C I

Publié : jeu. 03/juil./2008 19:09
par Backup
voila :)



; Activer une resolution !


#CDS_UPDATEREGISTRY = $1
#CDS_TEST = $2
#CDS_FULLSCREEN = $4
#CDS_GLOBAL = $8
#CDS_SET_PRIMARY = $10
#CDS_RESET = $40000000
#CDS_SETRECT = $20000000
#CDS_NORESET = $10000000

#DISP_CHANGE_SUCCESSFUL = 0
#DISP_CHANGE_RESTART = 1
#DISP_CHANGE_FAILED = -1
#DISP_CHANGE_BADMODE = -2
#DISP_CHANGE_NOTUPDATED = -3
#DISP_CHANGE_BADFLAGS = -4
#DISP_CHANGE_BADPARAM = -5

#DM_BITSPERPEL = $40000
#DM_PELSWIDTH = $80000
#DM_PELSHEIGHT = $100000
#DM_DISPLAYFREQUENCY = $400000

Procedure SetResolution(RezX, RezY, NbCoul, Frequence, Memoriser) ; si SetResolution=2 la résolution est identique à l'actuelle, si 1 erreur lors de la recherche des infos, sinon regarder #DISP_CHANG_...
    
    dm.DEVMODE
     If EnumDisplaySettings_ (0, -1, @dm)
         If RezX = dm\dmPelsWidth And RezY = dm\dmPelsHeight And NbCoul = dm\dmBitsPerPel And Frequence=dm\dmDisplayFrequency : ProcedureReturn 2 : EndIf
        dmEcran.DEVMODE
        dmEcran\dmSize = SizeOf (dmEcran)
        dmEcran\dmFields = #DM_PELSWIDTH|#DM_PELSHEIGHT|#DM_BITSPERPEL|#DM_DISPLAYFREQUENCY
        dmEcran\dmPelsWidth = RezX
        dmEcran\dmPelsHeight = RezY
        dmEcran\dmBitsPerPel = NbCoul
        dmEcran\dmDisplayFrequency = Frequence
         If Memoriser=1 : Memoriser= #CDS_UPDATEREGISTRY Or #CDS_NORESET : Else : Memoriser= #CDS_FULLSCREEN : EndIf
        dmx = ChangeDisplaySettings_ (@dmEcran,Memoriser)
         ProcedureReturn dmx
     Else
         ProcedureReturn 1
     EndIf
EndProcedure

Debug SetResolution(800,600,32,60,1)

Publié : ven. 04/juil./2008 14:35
par Oliv
C'est pas dans la mauvaise section tout ça ?

Publié : ven. 04/juil./2008 15:25
par Backup
Oliv a écrit :C'est pas dans la mauvaise section tout ça ?
:lol: :lol: ha oui tiens !! :D :lol: :lol:

j'arrange ça :)