Page 1 sur 1
[R] Suivi de GUI
Posté : jeu. 22 avr. 2010 10:30
par Sh4dows
Salut tous le monde,
J'ai comme qui dirais un petit souci
Alors voilà, j'ai 2 GUI (Fenêtre) cote à cote, l'une se nomme GUI 1 et l'autre GUI 2 et je souhaiterais que GUI 2 suive le déplacement de GUI 1.
Or pour cela j'ai pensé a récupérer la position de GUI 1 ainsi que de GUI 2 puis suite a un calcul par rapport a la fenêtre 1 j'obtiens la position (ou devrait être la GUI 2), et donc si elle n'est pas a cette emplacement alors on la déplace.
Donc pourriez vous m'orientez vers une fonction déjà existante ou pas ?
Merci d'avance,
Re: [..] Suivi de GUI
Posté : jeu. 22 avr. 2010 10:51
par Sh4dows
== AUTO RESOLUTION ==
Code : Tout sélectionner
Func _SUIVI_MENU()
$POSITION = WinGetPos("GUI2")
MsgBox(0, "Position de GUI2", "x = "&$POSITION[0]&" y = "&$POSITION[1])
EndFunc
Re: [R] Suivi de GUI
Posté : jeu. 22 avr. 2010 14:29
par Tlem
Je ne sais pas comment vous gérez le déplacement de la deuxième GUI avec cette fonction dans la boucle des messages, mais voici une autre option :
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form2 = GUICreate("GUI2", 231, 167, 450, 350)
Global $Button2 = GUICtrlCreateButton("Button2", 80, 120, 75, 25)
GUISetState(@SW_SHOW)
Global $Form1 = GUICreate("GUI1", 231, 167, 400, 300)
GUIRegisterMsg($WM_MOVE, "MY_WM_MOVE")
Global $Button1 = GUICtrlCreateButton("Button1", 64, 24, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func MY_WM_MOVE($hWnd, $Msg, $wParam, $lParam)
$nNotifyCode = BitShift($wParam, 16)
$nID = BitAND($wParam, 0x0000FFFF)
$hCtrl = $lParam
Local $aGui1 = WinGetPos($Form1)
If $nID <> 2 And $nNotifyCode = 0 Then
WinMove($Form2, "", $aGui1[0] + 50, $aGui1[1] + 50)
EndIf
EndFunc ;==>MY_WM_COMMAND
Re: [R] Suivi de GUI
Posté : jeu. 22 avr. 2010 16:10
par Sh4dows
Je fais la même chose !
J'utilise cette fonction :
Code : Tout sélectionner
...
While 1
_SUIVI_MENU()
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _SUIVI_MENU()
$POSITION_MENU = WinGetPos("MENU")
;MsgBox(0, "Position du Menu", "x = "&$POSITION_MENU[0]&" y = "&$POSITION_MENU[1])
$POSITION_ORIGINAL_GUI = WinGetPos("ACCOUNT OF SH4DOWS <CODED BY SH4DOWS>")
;MsgBox(0, "Position de la fenêtre principal", "x = "&$POSITION_ORIGINAL_GUI[0]&" y = "&$POSITION_ORIGINAL_GUI[1])
$X_MENU = $POSITION_ORIGINAL_GUI[0] +471
$Y_MENU = $POSITION_ORIGINAL_GUI[1] +533 ;533 = hauteur de la GUI1
$Y_MENU = $Y_MENU -292 ;291 = hauteur de la GUI2
If $POSITION_MENU[0] <> $X_MENU Or $POSITION_MENU[1] <> $Y_MENU Then
WinMove("MENU", "", $X_MENU, $Y_MENU +5) ;+5 pour la marge d'erreur
EndIf
EndFunc
Re: [R] Suivi de GUI
Posté : jeu. 22 avr. 2010 16:21
par Tlem
Hummm, ouais, sauf que là, vous faites les actions en permanence et non uniquement lorsque la GUI1 est déplacée.
Sa ralenti donc la boucle et limite le script ...
Re: [R] Suivi de GUI
Posté : jeu. 22 avr. 2010 17:36
par Sh4dows
C'est pas totalement vrai !
Je vérifie seulement la position de la fenêtre en permanence, et la déplace que si elle est différente !
Re: [R] Suivi de GUI
Posté : jeu. 22 avr. 2010 19:45
par Tlem
Sh4dows a écrit :Je vérifie seulement la position de la fenêtre en permanence, et la déplace que si elle est différente !
Oui, c'est bien ce que je dit ...
Vous faites ces actions en boucle et ces actions sont répétées de nombreuses fois, ce qui fait que vous consommez inutilement du temps processeur et des ressources.
Mais bon, après tout c'est vous qui voyez. Vous êtes libre de coder comme vous le voulez.

Re: [R] Suivi de GUI
Posté : jeu. 22 avr. 2010 21:08
par Sh4dows
Votre fonction est appelé avec :
C'est bien cela ?
Certes mon code ralentit le script mais le votre ne m'offre pas l'effet attendu !
Car les 2 GUI se déplacent en même temps.
C'est trop fixe je trouve
Comme vous venez de le dire chacun est libre de coder comme bon lui semble.
Cordialement Sh4dows
Re: [R] Suivi de GUI
Posté : jeu. 22 avr. 2010 23:16
par Tlem
Sh4dows a écrit :Certes mon code ralentit le script mais le votre ne m'offre pas l'effet attendu !
Car les 2 GUI se déplacent en même temps.
Ha !
N'est-ce pas ce que vous avez demandé ?
Sh4dows a écrit :Alors voilà, j'ai 2 GUI (Fenêtre) cote à cote, l'une se nomme GUI 1 et l'autre GUI 2 et je souhaiterais que GUI 2 suive le déplacement de GUI 1.
Soyez plus précis la prochaine fois.

Re: [R] Suivi de GUI
Posté : jeu. 22 avr. 2010 23:47
par Sh4dows
Oui c'est vrai, un gros manque de précision de ma part
@Tlem a et aura toujours le dernier mot
Bon sur ce Bonne nuit !!
Cordialement Sh4dows