[R] Redimensionner une interface GUI ainsi que l'image

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

[R] Redimensionner une interface GUI ainsi que l'image  

#1

Message par franco »

Bonjour à tous et à toutes.

Je cherche avant tout à afficher un gif animé dans une interface, : j'y arrive.
Mais je ne souhaite pas de barre de titre : j'y arrive aussi.

Le seul hic : je voudrais quand même que l'interface soit redimensionnable, et que l'image se redimensionne avec.

j'arrive à rendre redimensionnable l'interface, mais pas l'image affichée (le "control").

J'utilise l'UDF GifAnimation pour afficher les gifs animés.


Mais le script ci-dessus a été réduit, pour ne montrer que l'essentiel.
J'affiche donc une image .jpg.
► Afficher le textecode
Avez-vous une idée / une piste pour que je puisse redimensionner la GUI ET l'image simultanément ?


Merci :D
Et bonne journée / soirée.
Modifié en dernier par franco le sam. 21 mai 2016 21:29, modifié 1 fois.
L'entraide, c'est mon dada ;)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#2

Message par mikell »

GUICtrlSetResizing($pic, $GUI_DOCKBORDERS) :wink:
" 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
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#3

Message par walkson »

Bonsoir,
Si l'udf GifAnimation est celui de Tracexx, il y a une gui redimensionnable dans Example6_ImageViewer.au3 (image comprise)
Ça peut donner des idées...
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#4

Message par franco »

Bonjour.

Merci à vous deux. :)
Et effectivement, c'est bien l'udf de trancexx.


Je reviens plus tard.

++
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#5

Message par franco »

Bonjour.

Bon, déjà merci (encore) pour vos réponses.

Voici le nouveau code
► Afficher le textenouveau code
Il reste un problème, et pas des moindres.

J'affiche un gif animé et je le redimensionne :
- Pendant le redimensionnement, cela fonctionne.
- Une fois le redimensionnement fini, je relâche donc le clic de la souris : et là, PROBLEME...

En effet, j'ai "deux images".
- Le gif animé d'origine (avec les dimensions d'origine)
- Et l'image fixe qui a été redimensionnée.
D'où vient le souci ?
Et est-ce corrigible ?

EDIT : Ca fonctionne avec les images non animées.
EDIT2 : peut-être qu'il faut calculer les nouvelles dimensions et refaire un nouveau " _GUICtrlCreateGIF($FichierImage, "", 0, 0, $Largeur, $Hauteur) "

Si l'EDIT2 est confirmé... Et bien... Je ne sais pas faire ni où commencer.

Merci de m'aider :)
++
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#6

Message par franco »

Re.

Je pense avoir une solution... que je n'ai pas encore mis en place...

En fait, suffit de détecter les nouvelles dimensions de l'interface après le redimensionnement (surtout les deux tailles largeur et hauteur).
Puis de supprimer le gif animé.
Et de le recréer avec les nouvelles dimensions.


je vais tester.
je pense juste qu'il y aura un souci : comment faire pour dire "immédiatement après le redimensionnement, je veux que les nouvelles dimensions du gif s'appliquent'".

En gros, une condition : Si la taille varie, le gif varie aussi.


A creuser...
Je vais potasser. ^^


++
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#7

Message par franco »

Bonsoir.

J'ai avancé. ^^ Voire quasiment fini, me reste un problème qui n'est pas gênant.


Etant donné que je voulais faire une action après avoir redimensionné, j'ai donc recherché sur google avec des mots en français : rien trouvé.
Donc j'ai écrit ma recherche en anglais : et là, j'ai trouvé.

=> https://www.google.fr/search?q=autoit+a ... ter+resize
=> https://www.autoitscript.com/forum/topi ... ent-946083

la réponse : Case $GUI_EVENT_RESIZED


J'ai donc pondu ce code :
► Afficher le textenouveau code

Je fais donc ce que je voulais.

Le seul souci : la touche échap.


En effet, elle permet de fermer la fenêtre.
Après le redimensionnement, echap n'est plus active.

Après, je peux faire un hotkeyset... Mais j'aimerais savoir pourquoi echap ne me permet plus la fermeture de cette fenêtre.


@+ et bonne soirée à tous.
L'entraide, c'est mon dada ;)
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2109
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#8

Message par TommyDDR »

@franco : Avez-vous essayé la solution de mikell ?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#9

Message par franco »

Bonjour.

La ligne de Mikell est dans mon script, donc oui.

Tout fonctionne, sauf que la touche échap ne ferme pas la fenêtre.

Cependant, je compte ajouter un menu contextuel.
Donc je peux inclure la fermeture de cette fenêtre dans ce menu.

Néanmoins j'aimerais savoir pourquoi la touche Echap, même si je clique sur l'image, ne ferme pas la fenêtre.
J'ai du fauté quelque part.



++
L'entraide, c'est mon dada ;)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#10

Message par mikell »

Peut-être (hypothèse...) parce qu'il y a 2 gui et 2 boucles while, et que la gui principale est inactive pendant que la 2ème est présente
Pourquoi pas un hotkeySet ESC ? le résultat est le même, les incertitudes en moins
" 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
TommyDDR
Modérateur
Modérateur
Messages : 2109
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#11

Message par TommyDDR »

J'ai parcouru rapidement votre code, je me pose la question sur l'utilité d'avoir 2 fenêtres. Quelque chose m'échapperait-il ?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#12

Message par franco »

Salut.
J'ai parcouru rapidement votre code, je me pose la question sur l'utilité d'avoir 2 fenêtres. Quelque chose m'échapperait-il ?
La première fait juste 50*50 et me permet de glisser/déposer l'image que je souhaite afficher avec les dimensions voulues.

@+
L'entraide, c'est mon dada ;)
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 132
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#13

Message par Numeric »

franco a écrit :Bonjour.

La ligne de Mikell est dans mon script, donc oui.

Tout fonctionne, sauf que la touche échap ne ferme pas la fenêtre.

Cependant, je compte ajouter un menu contextuel.
Donc je peux inclure la fermeture de cette fenêtre dans ce menu.

Néanmoins j'aimerais savoir pourquoi la touche Echap, même si je clique sur l'image, ne ferme pas la fenêtre.
J'ai du fauté quelque part.



++
as tu donc pensé à un HotKeySet? en attendant?
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Redimensionner une interface GUI ainsi que l'image

#14

Message par franco »

Salut.

Oui, et cela a déjà été proposé par Mikell et moi-même.


Mais j'ai résolu le souci. D'une façon qui me parait pas... propre... Mais bon, ça fonctionne.
Case $GUI_EVENT_RESIZED
            GUISetState(@SW_HIDE)
            $newpos = WinGetPos($PicGui)
            $NewLargeur = $newpos[2]
            $NewHauteur = $newpos[3]
            If $Larg <> $NewLargeur Or $Haut <> $NewHauteur Then


               _GIF_DeleteGIF($DisplayImage)

               $DisplayImage = _GUICtrlCreateGIF($FichierImage, "", 0, 0, $NewLargeur, $NewHauteur)
               GUISetBkColor(0xABCDEF, $PicGui)
               _WinAPI_SetLayeredWindowAttributes($PicGui, 0xABCDEF, 250)

;~                $Actions = GUICtrlCreateContextMenu($DisplayImage)
;~                $CopierImage = GUICtrlCreateMenuItem("Copier l'image affichée", $Actions)
;~                $EnrSous = GUICtrlCreateMenuItem("Enregistrer l'image affichée", $Actions)
;~                GUICtrlCreateMenuItem("", $Actions)
;~                $Quitter = GUICtrlCreateMenuItem("Quitter", $Actions)

            EndIf
            GUISetState(@SW_SHOW)
J'ai juste rajouté :
GUISetState(@SW_HIDE) au début
GUISetState(@SW_SHOW à la fin

Car vraissemblablement, une fois l'interface redimensionnée... La fenêtre elle-même n'est plus "active".

Donc pour moi : c'est résolu.


Merci à vous tous de m'avoir aidé. :)
► Afficher le textecode complet

++
L'entraide, c'est mon dada ;)
Répondre