Résolution d'écran

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Vlad
Messages : 14
Inscription : jeu. 03/juil./2008 18:47

Résolution d'écran

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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)
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

C'est pas dans la mauvaise section tout ça ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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 :)
Répondre