[R] Redimensionner une GUI "en douceur" et fluide
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- yohan8
- Niveau 6
- Messages : 245
- Enregistré le : mer. 07 déc. 2011 22:34
- Localisation : Rhône
- Status : Hors ligne
[R] Redimensionner une GUI "en douceur" et fluide
Hello,
J'essaye de redimensionner une gui de manière fluide et le résultat que j'obtiens n'est pas très satisfaisant (voir FJ).
Si quelqu'un connais une autre méthode plus "jolie" tout en gardant l'effet "redimensionnement progressif" je suis preneur.
EDIT : j'ai rejouté l'include GUICtrlSetOnHover.
J'essaye de redimensionner une gui de manière fluide et le résultat que j'obtiens n'est pas très satisfaisant (voir FJ).
Si quelqu'un connais une autre méthode plus "jolie" tout en gardant l'effet "redimensionnement progressif" je suis preneur.
EDIT : j'ai rejouté l'include GUICtrlSetOnHover.
- Fichiers joints
-
- Autoit.rar
- (43.35 Kio) Téléchargé 294 fois
Modifié en dernier par yohan8 le ven. 05 sept. 2014 16:02, modifié 3 fois.
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Redimensionner une GUI "en douceur" et fluide
Tu pourrais essayer _WinAPI_AnimateWindow mais résultat non garanti en cas de gui compliquée
Et aussi mettre l'include dans le pack, c'est mieux pour tester
Et aussi mettre l'include dans le pack, c'est mieux pour tester
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- yohan8
- Niveau 6
- Messages : 245
- Enregistré le : mer. 07 déc. 2011 22:34
- Localisation : Rhône
- Status : Hors ligne
Re: [..] Redimensionner une GUI "en douceur" et fluide
Il me semble que _WinAPI_AnimateWindow permet effectivement d'avoir un rendu fluide de certains mouvement (hide/déplacement) de la GUI mais pas pour un redimensionnement.
L'autre solution serait de cacher les bordures noir qui apparaisse lors du redimensionnement vers l'inférieur ou alors de supprimer le contour noir qui provoque peut-être ces bordures épaisses.
EDIT
Impossible de modifier le style "avec bordure fine" à "sans bordure".
J'en arrive même à des résultats surprenants.
Après tout comme dit la doc : "It is the designer responsibility to take care of this compatibility". Trad=Fonction dépendant de la chance du designer
L'autre solution serait de cacher les bordures noir qui apparaisse lors du redimensionnement vers l'inférieur ou alors de supprimer le contour noir qui provoque peut-être ces bordures épaisses.
EDIT
Impossible de modifier le style "avec bordure fine" à "sans bordure".
► Afficher le texte
► Afficher le texte
Re: [..] Redimensionner une GUI "en douceur" et fluide
Et du côté de _WinAPI_SetWindowPos() ?
Code : Tout sélectionner
_WinAPI_SetWindowPos ( $GUI_ID, $HWND_TOP, $Size[0] - $iwidth/2, $Size[1] - $iheight/2, $Size[2] + $iwidth, $Size[3] + $iheight, $SWP_NOREDRAW )
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- yohan8
- Niveau 6
- Messages : 245
- Enregistré le : mer. 07 déc. 2011 22:34
- Localisation : Rhône
- Status : Hors ligne
Re: [..] Redimensionner une GUI "en douceur" et fluide
Des résultats surprenant amenant à la résolution de ce topic !
La fonction _WinAPI_SetWindowPos() permet effectivement de redimensionner et repositionner sa GUI mais j'ai trouvé aucun paramètre permettant de le faire en douceur et fluide.
Je suis donc revenu à mon problème qui était de supprimer les bordures de la gui pour la redimensionner sans qu'il y ait de vilain rectangle gris (couleurs de la bordure $WS_POPUPWINDOW) clignotant. Ce que j'ai trouvé de surprenant c'est que j'étais obligé de coupler la fonction GUISetStyle (pour supprimer les bordures avec BitOR($WS_POPUP,$WS_CLIPSIBLINGS)) avec _WinAPI_SetWindowPos(). A contrario la fonction GUISetStyle seul ou avec GuiSetState ne s’exécutait pas ou rendait des résultats incohérent (voir post précédent).
Un code fonctionnelle vaut bien mieux que des mots :
Ajuster la valeur de la variable "vitesse" permet de réduire l'effet saccadé.
Notons le "+1" rouge.! J'ai l'impression qu'il faut qu'il y est un changement dans la taille de la GUI pour que la fonction s’exécute.
Je rajouterais aussi que je n'ai pas cherché en profondeur l’utilité des paramètres de _WinAPI_SetWindowPos.
La fonction _WinAPI_SetWindowPos() permet effectivement de redimensionner et repositionner sa GUI mais j'ai trouvé aucun paramètre permettant de le faire en douceur et fluide.
Je suis donc revenu à mon problème qui était de supprimer les bordures de la gui pour la redimensionner sans qu'il y ait de vilain rectangle gris (couleurs de la bordure $WS_POPUPWINDOW) clignotant. Ce que j'ai trouvé de surprenant c'est que j'étais obligé de coupler la fonction GUISetStyle (pour supprimer les bordures avec BitOR($WS_POPUP,$WS_CLIPSIBLINGS)) avec _WinAPI_SetWindowPos(). A contrario la fonction GUISetStyle seul ou avec GuiSetState ne s’exécutait pas ou rendait des résultats incohérent (voir post précédent).
Un code fonctionnelle vaut bien mieux que des mots :
Ajuster la valeur de la variable "vitesse" permet de réduire l'effet saccadé.
► Afficher le texte
Je rajouterais aussi que je n'ai pas cherché en profondeur l’utilité des paramètres de _WinAPI_SetWindowPos.
Modifié en dernier par jguinch le ven. 05 sept. 2014 16:10, modifié 1 fois.
Raison : Ajout de la balise Spoiler
Raison : Ajout de la balise Spoiler
Re: [R] Redimensionner une GUI "en douceur" et fluide
Pas mal
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- TommyDDR
- Modérateur
- Messages : 2086
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [R] Redimensionner une GUI "en douceur" et fluide
Seul problème, la fenêtre fait 601 pixel de large :3
Tenez, voilà de quoi supprimer le problème du +1 :
Tenez, voilà de quoi supprimer le problème du +1 :
► Afficher le textecode
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- yohan8
- Niveau 6
- Messages : 245
- Enregistré le : mer. 07 déc. 2011 22:34
- Localisation : Rhône
- Status : Hors ligne
Re: [R] Redimensionner une GUI "en douceur" et fluide
Parfait
Je viens de comprendre comment effectuer le changement de style avec GUISetStyle, il faut coupler la fonction avec WinMove ou _WinAPI_SetWindowPos.
du coup en enlevant un maximum de code on arrive à éviter d'utiliser l'include WinAPI.au3
Je viens de comprendre comment effectuer le changement de style avec GUISetStyle, il faut coupler la fonction avec WinMove ou _WinAPI_SetWindowPos.
du coup en enlevant un maximum de code on arrive à éviter d'utiliser l'include WinAPI.au3
► Afficher le texte