Page 1 sur 1
[R] Résolution et redimensionnement
Posté : jeu. 25 juil. 2013 10:00
par Ks10
Bonjour à tous !
J'espère que vous allez bien

Je fait appel à vous car je bloque sur un soucis. Comme indiquer dans le titre, j'aimerais pouvoir redimensionner mes fenêtres dans mon programme en fonction de la résolution des écrans.
J'ai fait quelques recherche et j'ai eu quelques pistes au niveau des commandes comme :
- Pour centrer ma fenêtre : GuiCreate("Ma Gui", 10, 10, -1, -1)
- Pour avoir la résolution vertical : @DesktopHeight
- Pour avoir la résolution horizontal : @DesktopWidth
Cependant voila je ne voie pas du tout comment l'utiliser. Quel genre de composition de code je dois faire. Je sait juste que forcément il y aura les valeurs des résolutions comme par exemple (1920x1200 etc... )
Bref, une petite explication bien détaillés me ferais pas de mal
Merci d'avance et bon codage

Re: [..] Résolution et redimensionnement
Posté : jeu. 25 juil. 2013 11:49
par Yogui
Bonjour,
Oui merci et vous
Le problème de redimensionner une GUI c'est qu'il faut aussi redimensionner son contenu
Petit exemple tout simple (sans fonction et avec un seul bouton, il est possible de passer par une fonction pour recalculer taille et position)
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#region recup résolution écran
$largeur = @DesktopHeight
$hauteur = @DesktopWidth
#endregion recup résolution écran
#region pourcentage taille écran
$poucentage = 50 ; optimal à 50
#endregion pourcentage taille écran
#region calcule taille GUI
$guihauteur = @DesktopHeight - ((@DesktopHeight * $poucentage) / 100)
$guilargeur = @DesktopWidth - ((@DesktopWidth * $poucentage) / 100)
#endregion calcule taille GUI
#region calcule taille et position bouton
$btnhauteur = 50 ;je part du principe que la hauteur d'un bouton pour un écran utilisé à 100 % et 50 * 150
$btnlargeur = 150
$btnhauteur = $btnhauteur - (($btnhauteur * $poucentage) / 100)
$btnlargeur = $btnlargeur - (($btnlargeur * $poucentage) / 100)
$btndroite = $guihauteur - $btnhauteur * 1.5
$btngauche = $guilargeur - $btnlargeur * 1.5
#endregion calcule taille et position bouton
Global $GUI = GUICreate($GUI, $guilargeur, $guihauteur, -1, -1)
Global $Button1 = GUICtrlCreateButton("Button1", $btngauche, $btndroite, $btnlargeur, $btnhauteur)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Re: [..] Résolution et redimensionnement
Posté : jeu. 25 juil. 2013 12:07
par Ks10
Oui ça va merci
Global $GUI = GUICreate($GUI, $guilargeur, $guihauteur, -1, -1)
Global $Button1 = GUICtrlCreateButton("Button1", $btngauche, $btndroite, $btnlargeur, $btnhauteur)
Donc si j'ai bien comprit :
- En plus de redimensionner ma GUI je redimensionne son contenu.
Mais : la pour le bouton 1 les paramètres sont : GUICtrlCreateButton("Button1", $btngauche, $btndroite, $btnlargeur, $btnhauteur)[/quote]
Et pour un input ou un label sa sera pareil ?
Merci d'avoir répondu aussi vite :')
Re: [..] Résolution et redimensionnement
Posté : jeu. 25 juil. 2013 13:03
par Yogui
Je vais tenter de remettre la main sur l'include ou la fonction qui cherche à redimensionner ...
ici ?
http://www.autoitscript.fr/forum/viewtopic.php?p=37995
Sinon oui il faut recalculer la taille et la position de ce qui compose l'interface. je vous invite à faire des tests

Re: [..] Résolution et redimensionnement
Posté : jeu. 25 juil. 2013 13:40
par Ks10
J'entamme les tests dès que possible, je suis au taf
Merci

Re: [..] Résolution et redimensionnement
Posté : jeu. 25 juil. 2013 13:43
par Yogui
J'ai retrouvé ...
http://www.autoitscript.com/autoit3/doc ... sizing.htm
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
Local $nEdit, $nOk, $nCancel, $msg
Opt("GUICoordMode", 2)
$Form1 = GUICreate("My InputBox", 190, 114, -1, -1, $WS_SIZEBOX + $WS_SYSMENU)
GUISetIcon("Eiffel Tower.ico")
GUISetFont(8, -1, "Arial")
GUICtrlCreateLabel("Prompt", 8, 7) ; add prompt info
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
$nEdit = GUICtrlCreateInput("Default", -1, 3, 175, 20, $ES_PASSWORD) ; add the input area
GUICtrlSetState($nEdit, $GUI_FOCUS)
GUICtrlSetResizing($nEdit, $GUI_DOCKAUTO)
$nOk = GUICtrlCreateButton("OK", -1, 3, 75, 24) ; add the button that will close the GUI
GUICtrlSetResizing($nOk, $GUI_DOCKAUTO)
$nCancel = GUICtrlCreateButton("Annuler", 25, -1) ; add the button that will close the GUI
GUICtrlSetResizing($nCancel, $GUI_DOCKAUTO)
GUISetState() ; to display the GUI
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
Moi aussi je suis au taf lol
Re: [..] Résolution et redimensionnement
Posté : jeu. 25 juil. 2013 14:44
par Ks10
Définit la méthode de redimensionnement utilisé par un contrôle.
Cette phrase veux dire quoi exactement ? Elle m'échappe a vrai dire...
Comme je voie sa taf dur xD
Re: [..] Résolution et redimensionnement
Posté : jeu. 25 juil. 2013 15:06
par mikell
Ben c'est assez clairement expliqué dans le tableau sur cette page de l'aide...
En fait pour être complet il aurait mieux valu dire "Définit la méthode de redimensionnement et de repositionnement"
Par exemple un bouton peut être repositionné dans la gui mais garder la même taille (ou pas), etc
Re: [..] Résolution et redimensionnement
Posté : ven. 26 juil. 2013 12:32
par Ks10
Oui mais cette commande :
Ne fonctionnera pas tous seul , je veux dire qu'il faut compléter avec le calcul que Yogui à fait plus haut non ?
Pour informations : Le calcul que tu a fait me dépasse un peu pour être honnête :$
Re: [..] Résolution et redimensionnement
Posté : ven. 26 juil. 2013 13:05
par Yogui
Clairement je ne pensais pas que ce fusse si compliqué...
On va combiner les deux
Le calcule est simple c'est un calcule de %
je veux une baisse de 10 % sur mes 100 € d'achat je vais donc payer 100 -((100*10)/100) = 90
Je veux une fenêtre ayant pour taille la moitié de la résolution de mon écran je vais donc avoir $guilargeur = @DesktopHeight-((@DesktopHeight * $poucentage)/100) pour la largeur et $guihauteur = @DesktopWidth-((@DesktopWidth * $poucentage)/100) pour la hauteur
Le problème est que GUICtrlSetResizing ne fonctionne que pour les contrôles ... il faut donc tricher un peu et redimensionner la fenêtre après l'affichage. : Pour ça il y a la fonction winmove()
par exemple :
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
$largeur = @DesktopHeight
$hauteur = @DesktopWidth
$poucentage = 50
$guilargeur = @DesktopHeight - ((@DesktopHeight * $poucentage) / 100)
$guihauteur = @DesktopWidth - ((@DesktopWidth * $poucentage) / 100)
Local $nEdit, $nOk, $nCancel, $msg
Opt("GUICoordMode", 2)
$Form1 = GUICreate("My InputBox", 500, 400, -1, -1, $WS_SIZEBOX + $WS_SYSMENU)
GUISetFont(8, -1, "Arial")
GUICtrlCreateLabel("Prompt", 8, 7) ; add prompt info
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
$nEdit = GUICtrlCreateInput("Default", -1, 3, 175, 20, $ES_PASSWORD) ; add the input area
GUICtrlSetState($nEdit, $GUI_FOCUS)
GUICtrlSetResizing($nEdit, $GUI_DOCKAUTO)
$nOk = GUICtrlCreateButton("OK", -1, 3, 75, 24) ; add the button that will close the GUI
GUICtrlSetResizing($nOk, $GUI_DOCKAUTO)
$nCancel = GUICtrlCreateButton("Annuler", 25, -1) ; add the button that will close the GUI
GUICtrlSetResizing($nCancel, $GUI_DOCKAUTO)
WinMove($Form1, "uu", Default, Default, $guihauteur, $guilargeur)
GUISetState()
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
Re: [..] Résolution et redimensionnement
Posté : ven. 26 juil. 2013 13:19
par Ks10
Alala... je te remercie pour ta patience x) J'ai un cerveau très très lent !
Bon déjà dès ce soir je fait les tests avec les informations que j'ai et je vous tien au courant du déroulement des choses
Merci beaucoup !
Ps : J'ai trouver le calcul compliqué parce que j'ai toujours été un attarder en math ... et en logique *sifflote*