PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Changer la résolution de l'écran avec Windev ?
Changer la résolution de l'écran avec Windev ?
Débuté par guest, 11 jan. 2005 13:52 - 3 réponses
Posté le 11 janvier 2005 - 13:52
Bonjour,


peut-on, à partir d'une application Windev, changer la résolution de l'écran.

J'ai besoin de passer rapidement d'une résolution 800 x 600 vers 1024 x 768 et inversement....

Je connais les fonction d'information SysXRes(), SysYRes() et SysMétrique() pour connaitre la résolution du moment. Mais je n'ai pas trouvé comment la modifier.

Merci pour votre aide


Chris
Posté le 12 janvier 2005 - 10:33
Ce que je peux te dire c'est que tu peux le faire par l'api windows
ChangeDisplaySettingsA de la DLL USER32.
Je n'ai malheureusement aucun exemple.
Antoine


chris wrote:
Bonjour,


peut-on, à partir d'une application Windev, changer la résolution de
l'écran.

J'ai besoin de passer rapidement d'une résolution 800 x 600 vers 1024
x 768 et inversement....

Je connais les fonction d'information SysXRes(), SysYRes() et
SysMétrique() pour connaitre la résolution du moment. Mais je n'ai
pas trouvé comment la modifier.

Merci pour votre aide


Chris
Posté le 12 janvier 2005 - 11:54
bonjour ,

voici un extrait d'une doc qui doit pouvoir t'aider.

bon dev
jeanlin

Description
ChangeDisplaySettings change les paramètres d'affichage pour le mode graphique spécifié.
Syntaxe
AppelDLL32("User32","ChangeDisplaySettingsA", &lpDevMode, dwFlags)
lpDevMode
Pointe sur une structure qui décrit le mode graphique à commuter. Le membre dmSize peut être initialisé à la taille en octets de la structure. Si lpDevMode est NULL, toutes les valeurs courantes dans le registre seront utilisées pour le paramétrage de l'affichage. Le passage du NULL pour ce paramètre est le moyen le plus facile de retourner le mode par défaut après un changement dynamique.
dwflags
Indique comment le mode graphique devra être changé, soit une des valeurs suivantes :
Valeur Signification
0 Le mode graphique sera changé dynamiquement.
CDS_UPDATEREGISTRY Le mode graphique sera changé dynamiquement et la base de registre sera mise à jour.
CDS_TEST Le système teste si le mode graphique est supporté.

La fonction retourne une des valeurs suivantes :
Valeur Signification
DISP_CHANGE_SUCCESSFUL Changement effectué avec succès.
DISP_CHANGE_RESTART L'ordinateur doit être redémarré pour que le changement de mode graphique fonctionne.
DISP_CHANGE_BADFLAGS Un jeu invalide de paramètre a été passé.
DISP_CHANGE_FAILED Echec sur le changement de mode graphique.
DISP_CHANGE_BADMODE Le mode graphique n'est pas supporté.
DISP_CHANGE_NOTUPDATED Impossible d'écrire dans la base de registre.
Compatibilité
Toutes versions sauf bibliothèque Win32s
Remarque
Aucune
Exemple 1
// Changer la résolution de l'écran mais garder
// le même nombre de couleurs pour éviter le redémarrage
dm est un DEVMODE
ModeNum est un entier long
RetVal est un entier
TypeReso est une chaîne
// Création d'une liste pour récupérer toutes les résolutions
// Ici la liste s'appelle LstReso
TANTQUE AppelDLL32("user32", "EnumDisplaySettingsA", Null, ModeNum, &dm)
TypeReso = ModeNum + TAB + dm:dmPelsWidth + TAB + ...
dm:dmPelsHeight + TAB + dm:dmBitsPerPel + " bits"
// 4 bits pour 16 couleurs
// 8 bits pour 256 couleurs
// 16 bits pour 65536 couleurs
ListeAjoute("LstReso", TypeReso)
ModeNum++
FIN
// Ce code vous est offert par Beaussier en ligne
// Remerciement à Patrick Levesque pour cet exemple
// On renseigne la structure DevMode
// en fonction du mode de résolution choisi
// Pour cela, créer une procédure en passant le numéro ModeNum
AppelDLL32("User32", "EnumDisplaySettingsA", Null, ModeNum, &dm)
RetVal = AppelDLL32("User32", "ChangeDisplaySettingsA", &dm, ModeNum)
SI RetVal Alors
SI RetVal > 0 Alors
Info("Vous devez redémarrez pour effectuer le changement")
Sinon
Erreur("Mode graphique non supporté")
FIN
FIN
Posté le 16 janvier 2005 - 18:00
Merci pour les infos.
je devrais arriver à me débrouiller !

Chris