[R] Résolution et redimensionnement

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

[R] Résolution et redimensionnement

#1

Message 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 :)
Modifié en dernier par Ks10 le mer. 31 juil. 2013 08:30, modifié 1 fois.
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Résolution et redimensionnement

#2

Message 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
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Résolution et redimensionnement

#3

Message 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 :')
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Résolution et redimensionnement

#4

Message 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 :)
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Résolution et redimensionnement

#5

Message par Ks10 »

J'entamme les tests dès que possible, je suis au taf ;)

Merci :)
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Résolution et redimensionnement

#6

Message 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
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Résolution et redimensionnement

#7

Message 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
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Résolution et redimensionnement

#8

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Résolution et redimensionnement

#9

Message par Ks10 »

Oui mais cette commande :

Code : Tout sélectionner

GUICtrlSetResizing ( controlID, resizing )
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 :$
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Résolution et redimensionnement

#10

Message par Yogui »

Clairement je ne pensais pas que ce fusse si compliqué...

On va combiner les deux :lol:

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
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Résolution et redimensionnement

#11

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