Page 1 sur 1
Résolution d'écran
Publié : mar. 18/oct./2011 14:25
par pat
Bonjour à tous,
Je souhaiterai, par programme uniquement, pouvoir changer la résolution de l'écran, par exemple passer à 800 x 600 ou 1440 x 900 par exemple.
Je sais qu'avec la fonction OpenScreen(....) on change la résolution mais quand on quitte le programme on revient à la résolution précédente.
Je souhaiterai changer la résolution de l'écran même quand on quitte le programme.
Je pense que les API sont de rigueur mais je n'ai pas réussi à trouver les infos.
Merci à ceux qui voudront me donner quelques explications.
Re: Résolution d'écran
Publié : mar. 18/oct./2011 14:40
par falsam
Un code de Don Dobro que tu trouveras sur ce
ce lien
L'interface DevMode est déja declaré dans purebasic. Tu trouveras sa structure sur
ce lien
Re: Résolution d'écran
Publié : mar. 18/oct./2011 14:47
par falsam
Je viens de tester le code. Tu peux éviter de déclarer les enumerations liée à la structure DevMode.
le code de Don Dobro devient :
Code : Tout sélectionner
; Activer une resolution !
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
SetResolution(800,600,32,60,1)
Re: Résolution d'écran
Publié : mer. 19/oct./2011 12:58
par pat
Merci encore à toi falsam.
Je vais voir ça de plus prêt.
Re: Résolution d'écran
Publié : mer. 02/nov./2011 12:46
par pat
J'ai rentré le code et ça marche. C'est super !
Merci à toi falsam.