[R] Limiter la zone de déplacement du GUI
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.
-
- Membre émérite
- Messages : 770
- Enregistré le : sam. 11 oct. 2008 14:44
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
la fonction ci-dessous ne déplace pas les gui filles, mais ne limite pas les mouvements de la fenêtre principale !
► Afficher le texte
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
Le support de GUI fils type MDI et autres repose, dans AutoIt actuel, un peu sur des béquilles.
Disons qu'il ne faut pas pousser le support GUI dans ses retranchements, sous peine d'avoir à faire d'atroces bidouilles en interceptant moults messages avec du code AutoIt, ce qui n'est pas du plus efficace, ni stable.
Pour créer une application à GUI vraiment complexe, mieux vaut s'orienter vers un environnement de développement plus adapté. Ce n'est pas la vocation d'AutoIt.
Disons qu'il ne faut pas pousser le support GUI dans ses retranchements, sous peine d'avoir à faire d'atroces bidouilles en interceptant moults messages avec du code AutoIt, ce qui n'est pas du plus efficace, ni stable.
Pour créer une application à GUI vraiment complexe, mieux vaut s'orienter vers un environnement de développement plus adapté. Ce n'est pas la vocation d'AutoIt.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
-
- Membre émérite
- Messages : 770
- Enregistré le : sam. 11 oct. 2008 14:44
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
Merci de votre réponse 

- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
Je ne dis pas ça pour décourager les expérimentations, bien au contraire, plutôt pour éviter les déconvenues coûteuses en temps et/ou en énergie.
Ceci dit, on peut déjà faire des choses pas mal du tout quand on met un peu les mains dans le cambouis.
Ceci dit, on peut déjà faire des choses pas mal du tout quand on met un peu les mains dans le cambouis.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
Ben y aurait ça
l'avantage c'est que tu travailles avec des images bitmap, c'est nettement plus simple
la transparence des bmp se fait avec _WinAPI_SetLayeredWindowAttributes()
j'envoie le rar avec les images
l'avantage c'est que tu travailles avec des images bitmap, c'est nettement plus simple
la transparence des bmp se fait avec _WinAPI_SetLayeredWindowAttributes()
j'envoie le rar avec les images
Code : Tout sélectionner
#include <StructureConstants.au3>
#include <WinAPI.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $skype, $gimp
Global $iX_Min = 100, $iX_Max = @DesktopWidth - 600, $iY_Min = 100, $iY_Max = @DesktopHeight - 600
$hGUI1 = GUICreate("Test", 500, 500, -1, -1)
GUISetBkColor(0xaa0000)
GUISetState()
$hGUI2 = GUICreate("", 500, 500, -1, -1, $WS_POPUP, $WS_EX_LAYERED + $WS_EX_TOPMOST + $WS_EX_COMPOSITED + $WS_EX_MDICHILD, $hGUI1)
MySplash($skype, @ScriptDir&"\skype.bmp", 1500, 1 , 100,100,100,100)
MySplash($gimp, @ScriptDir&"\gimp.bmp", 1500, 1 , 200,100,100,100)
GUISetBkColor(0xFF00FF)
_WinAPI_SetLayeredWindowAttributes($hGUI2, 0xFF00FF)
GUISetState()
GUIRegisterMsg($WM_WINDOWPOSCHANGING, "WM_WINDOWPOSCHANGING")
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)
Local $stWinPos = DllStructCreate("uint;uint;int;int;int;int;uint", $lParam)
Local $iLeft = DllStructGetData($stWinPos, 3)
Local $iTop = DllStructGetData($stWinPos, 4)
Local $iWidth = DllStructGetData($stWinPos, 5)
Local $iHeight = DllStructGetData($stWinPos, 6)
If $iLeft < $iX_Min Then DllStructSetData($stWinPos, 3, $iX_Min)
If $iTop < $iY_Min Then DllStructSetData($stWinPos, 4, $iY_Min)
If $iLeft > $iX_Max Then DllStructSetData($stWinPos, 3, $iX_Max)
If $iTop > $iY_Max Then DllStructSetData($stWinPos, 4, $iY_Max)
EndFunc
Func MySplash($pic, $Path_Logo, $Time_Splash, $Blink, $Xlogo, $Ylogo, $newW, $newH)
$pic = GUICtrlCreatePic ($Path_Logo, $Xlogo, $Ylogo, $newW, $newH)
GUICtrlSetState($pic, $GUI_ONTOP)
EndFunc ;==>MySplash
" 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 )
- Tlem
- Site Admin
- Messages : 11796
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
En avançant dans mon script je viens de constater que si je crée plusieurs Gui filles qui normalement doivent suivre ma Gui principale grâce à l'option $WS_EX_MDICHILD, lorsque je bouge la gui principale vers la gauche, les gui filles suivent alors que si je déplace la Gui principale vers la droite, les gui filles se placent tout à coup l'une sur l'autre à l'origine de la Gui principale.
Alors que si je commente la ligne , GUIRegisterMsg($WM_WINDOWPOSCHANGING, "WM_WINDOWPOSCHANGING") , je n'ai plus bien sure les limites en x et y mais je n'ai plus ce problème de superposition des gui filles !
J'en étais resté là... bien sûr que c'est la fonction déjà mentionnée, mais la différence c'est qu'avec 2 guis et des bitmaps, là ça fonctionne...Tlem a écrit :Je n'ai pas de réponse.

" 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 )
- Tlem
- Site Admin
- Messages : 11796
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
Ha ok, autant pour moi.
Je m'était arrêté au même endroit sans prendre le temps de lire le reste, car pierrotm777 se bloque souvent par la complexité de son code sans savoir réellement ce qu'il fait.
Je m'était arrêté au même endroit sans prendre le temps de lire le reste, car pierrotm777 se bloque souvent par la complexité de son code sans savoir réellement ce qu'il fait.

Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
Il va adorerTlem a écrit :... pierrotm777 se bloque souvent par la complexité de son code sans savoir réellement ce qu'il fait.

Cela dit je suis bien d'accord avec jchd, vaut mieux faire simple si on peut et les mix de gui spéciales, de messages windows et de GDI+ ça peut devenir lourd à gérer
Je vais me faire une signature "la solution la plus simple est toujours la meilleure"

" 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 )
-
- Membre émérite
- Messages : 770
- Enregistré le : sam. 11 oct. 2008 14:44
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
On parle de moi dans mon dos et c'est pas gentil .
Je pense qu'il vaut mieux pour moi me donner un but complexe plutôt que de rester sur ce que je sais déjà faire .
Je crois avoir fais des progrès depuis plus de 3 ans, mais oui je ne comprend pas toujours certains code, notamment les tableau à plusieurs dimensions! Le principal étant de finir par le comprendre même si ce n'est pas de suite !
A mon âge, il m'a été difficile de me mettre à autoit !
Pourtant, à force j'arrive à créer autour de mes besoins du moment !
Tlem en toujours aussi dur ! Je suppose que c'est pour mon bien ?

Je pense qu'il vaut mieux pour moi me donner un but complexe plutôt que de rester sur ce que je sais déjà faire .
Je crois avoir fais des progrès depuis plus de 3 ans, mais oui je ne comprend pas toujours certains code, notamment les tableau à plusieurs dimensions! Le principal étant de finir par le comprendre même si ce n'est pas de suite !
A mon âge, il m'a été difficile de me mettre à autoit !
Pourtant, à force j'arrive à créer autour de mes besoins du moment !
Tlem en toujours aussi dur ! Je suppose que c'est pour mon bien ?

-
- Membre émérite
- Messages : 770
- Enregistré le : sam. 11 oct. 2008 14:44
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
Pour info, mon souci du moment est de travailler avec des images .png avec pour but de créer un menu dont les labels proviennent d'un format de fichier propriétaire. Alors oui c'est difficile , oui je me mélange les pinceaux parfois , oui je pose parfois des questions déjà posées mais je m'amuse beaucoup avec autoit et le forum m'est toujours d'une grande aide !
Comme disait Thierry Lermithe dans le père noël est une ordure "Parfois le chemenin est long !"
Mais merci tout de même pour l'intérêt que vous portez à mon problème
Comme disait Thierry Lermithe dans le père noël est une ordure "Parfois le chemenin est long !"

Mais merci tout de même pour l'intérêt que vous portez à mon problème

- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
Ne te fâche pas
Je voulais juste dire qu'avec des bmp tu pourrais atteindre ton but pareillement mais avec un code beaucoup plus léger et des contrôles faciles à gérer
Si l'affichage de la GUI provoque déjà des soucis, la mise en place du reste du script risque d'être d'autant plus compliquée
Je voulais juste dire qu'avec des bmp tu pourrais atteindre ton but pareillement mais avec un code beaucoup plus léger et des contrôles faciles à gérer
Si l'affichage de la GUI provoque déjà des soucis, la mise en place du reste du script risque d'être d'autant plus compliquée
peux-tu expliquer "format de fichier propriétaire" ?pierrotm777 a écrit :....un menu dont les labels proviennent d'un format de fichier propriétaire
" 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 )
-
- Membre émérite
- Messages : 770
- Enregistré le : sam. 11 oct. 2008 14:44
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
Non je ne me fâche pas , il m'en faudrait bien plus ! Je sais bien qu'avec des bmp ce serait-il plus simple et là je saurait faire tout seul , mais en ce moment je travaille sur GDI+, ce qui n'est pas vraiment simple de premier abord !
Le format est celui du FrontEnd RideRunner:
Dans la 3ème ligne se trouvent les fichiers .png de la GUI principale
Les lignes suivantes configurent mon menu
(effet au demarrage, position xy, positions min et max, délai de mise à jour des labels, transparence du menu )
Les lignes commençant par un L sont des labels
Les lignes commençant par un B sont des boutons
Les lignes commençant par un L sont des labels
Les lignes commençant par un I sont des indicateurs clignotant ou pas
Donc , le script vient lire tout cela et le converti au format autoit .
Riderunner supporte aussi bien les jpg,gif,bmp et png .
Voilà voilà il me reste le clignotement des logo et la mise à jour des labels à traiter
Et cela peut donner ça le menu est ici encadré en rouge)
Le format est celui du FrontEnd RideRunner:
► Afficher le texte
Les lignes suivantes configurent mon menu
(effet au demarrage, position xy, positions min et max, délai de mise à jour des labels, transparence du menu )
Les lignes commençant par un L sont des labels
Les lignes commençant par un B sont des boutons
Les lignes commençant par un L sont des labels
Les lignes commençant par un I sont des indicateurs clignotant ou pas
Donc , le script vient lire tout cela et le converti au format autoit .
Riderunner supporte aussi bien les jpg,gif,bmp et png .
Voilà voilà il me reste le clignotement des logo et la mise à jour des labels à traiter

Et cela peut donner ça le menu est ici encadré en rouge)
- Tlem
- Site Admin
- Messages : 11796
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Limiter la zone de déplacement du GUI
On peut dire ça ...pierrotm777 a écrit :Tlem en toujours aussi dur ! Je suppose que c'est pour mon bien ?

Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".