[R] Déplacer une GUI avec pour style $WS_POPUPWINDOW

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
AirPE
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 23 mars 2009 09:40
Localisation : Bordeaux
Status : Hors ligne

[R] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#1

Message par AirPE »

Bonjour bonjour!

Je crois que tout est dans le titre! J'aimerai savoir s'il existerait un moyen de déplacer une fenêtre ayant le style $WS_POPUPWINDOW

Par exemple:

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

GUICreate("test", 200, 100, -1, -1, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW)

$fermerAppli = GUICtrlCreateButton("x", 0, 0, 20, 20)

GUISetState()

While 1
    If GUIGetMsg() = $fermerAppli Then
        ExitLoop
    EndIf
WEnd
GuiDelete()
Sur cette fenêtre si j'ai envi de la déplacer comment faire? Je parle pas de la positionner à sa création, je dis bien la déplacer une fois créée. Je la prends avec la souris et je la mets ou bon me semble! :P
Il n'y aurait pas une fonction par hasard permettant de faire ça? Ou alors il faut ruser et coder le truc soit même, si c'est le cas comment s'y prendre?
Là desuite je pensais à récupérer l'état du clique gauche sur la GUI avec la fonction GUIGetCursorInfo, si clique gauche il y a alors je replace la GUI où se trouve la souris. Mais bon plus facile à dire qu'à faire! :lol:
Sinon ne pourrait-on pas lui mettre une barre de titre juste pour la déplacer et ensuite revenir au style $WS_POPUPWINDOW? :?

Merci d'avance! :wink:

PS: Soit je suis pas encore bien réveillé soit l'heure du site n'est pas à l'heure... :P
Modifié en dernier par AirPE le ven. 24 avr. 2009 02:36, modifié 1 fois.
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] déplacer une GUI avec pour style $WS_POPUPWINDOW

#2

Message par GaRydelaMer »

Bonjour

pour déplacer une fenêtre: WinMove( "title", "text", x, y [, width [, height[, speed]]] ) en plus tu peux aussi la redimensionner.

Le truc à faire j'ai pas encore trouver mais c'est de capturer les mouvement de la souris MouseDown, et MouseUp
Qand tu clicke sur la fenetre MouseDown et MouseUp dq tu relache
Local $cursor = MouseGetPos()
Ensuite WinMove($GUI, "", $cursor[0], $curso[1]).

Enfin un truc du genre et certainement avec GUIRegisterMsg($WM_NOTIFY, "_MY_WM_NOTIFY").


Pour l'heure du site à toi de modifier dans les paramètre utilisateur que tu es passé à l'heure d'été c'est pas seulement une question de réveil :p
AirPE
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 23 mars 2009 09:40
Localisation : Bordeaux
Status : Hors ligne

Re: [..] déplacer une GUI avec pour style $WS_POPUPWINDOW

#3

Message par AirPE »

Bonjour,

Merci pour votre réponse rapide! :)
Oui hier soir j'ai testé la fonction WinMove, c'est bien comme fonction! :)
Je sais pas trop comment m'y prendre pour capturer que le clique gauche est maintenu...

"Local $cursor = MouseGetPos()
Ensuite WinMove($GUI, "", $cursor[0], $curso[1]).

Enfin un truc du genre et certainement avec GUIRegisterMsg($WM_NOTIFY, "_MY_WM_NOTIFY")."

Là tout de suit eje peux pas trop m'y pencher, j'ai entraînement dans pas longtemps! :lol:
mais en revenant je regarde ça de plus près!
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#4

Message par GaRydelaMer »

Bonsoir

je reviens sur ton pb, je te propose un bout de code pour commencer.

Maintenant dans ton prog final, je pense qu'il va falloir y ajouter quelques contrôle mais c'est déjà un début.

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$GUI = GUICreate("test", 200, 100, -1, -1, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW)
$fermerAppli = GUICtrlCreateButton("x", 0, 0, 20, 20)
GUISetState()
While 1
    Local $cursor = MouseGetPos()
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE, $fermerAppli
            ExitLoop
        Case $GUI_EVENT_PRIMARYDOWN

        Case $GUI_EVENT_PRIMARYUP
            WinMove($GUI, "", $cursor[0], $cursor[1])
            
        Case $GUI_EVENT_MOUSEMOVE

    EndSwitch
WEnd
GUIDelete()
 
AirPE
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 23 mars 2009 09:40
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#5

Message par AirPE »

Eh bien merci beaucoup!!!
L'exemple que tu m'as donné m'a permis d'avancer et même de finir! :D

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$GUI = GUICreate("test", 200, 100, -1, -1, $WS_POPUPWINDOW);, $WS_EX_TOOLWINDOW)

$fermerAppli = GUICtrlCreateButton("x", 0, 0, 20, 20)

GUISetState()

While 1
    Local $cursor = MouseGetPos(), $cursorInfo = GUIGetCursorInfo($GUI)
    
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE, $fermerAppli
            ExitLoop           
            
        Case $GUI_EVENT_SECONDARYDOWN
            GUISetCursor(9)
            Do
                $cursor = MouseGetPos()
                WinMove($GUI, "", $cursor[0]-$cursorInfo[0], $cursor[1]-$cursorInfo[1])
            Until GUIGetMsg() = $GUI_EVENT_SECONDARYUP
            GUISetCursor(-1)
            
    EndSwitch
WEnd
GUIDelete()
Bon y a juste un touuuuuuuuuuuut petit hic! C'est qu'il faut cliquer droit pour pouvoir déplacer la GUI, car avec le clique gauche il est ensuite impossible de se servir des controles comme les boutons... Si quelqu'un trouve une solution je suis preneur bien sûr sinon je pense que j'ai trouvé mon bonheur! :)

Le cursorInfo permet quand on "attrape" la Gui pour la déplacer, de la déplacer suivant où se trouve la souris... Hem je sais pas comment expliquer, enfin vous comprendrez, mais c'est pour d'autres, sait-on jamais! En fait s'il n'y a pas le cursor Info ça marche aussi mais lors du clique droit la fenêtre se positione où se trouve la souris... Bref c'est pas grave, je vois pas comment expliquer! :oops:

Je laisse le sujet en non-résolu pour quelques jours histoire de voir s'il y a des idées pour pouvoir le faire clique gauche en gardant le contrôle sur les boutons, parce que bon soyons honnête, ça marche très bien! :D mais un clique droit pour déplacer c'est inhabituel quand même!

:D En tout cas merci beaucoup à toi GaRydelaMer!! :D
AirPE
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 23 mars 2009 09:40
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#6

Message par AirPE »

Bon je viens de l'intégrer à mon script, le truc c'est que quand je fais le clique droit sur un label ou un bouton ça fonctionne une fois sur 10... Sinon tout le reste de l'espace de la GUI, où il n'y a ni label ni bouton ça fonctionne à tous les coups... C'est gênant quand même! :P Quelqu'un aurait une idée? :oops:
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#7

Message par Iste »

bheuuu, je sais pas trop si ca aide, mais je prefere comme ca :

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$GUI = GUICreate("test", 200, 100, -1, -1, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW)
$fermerAppli = GUICtrlCreateButton("x", 0, 0, 20, 20)
$justuntest = GUICtrlCreateButton("Test me !", 50, 50)
$justuntest2 = GUICtrlCreateButton("Test me !", 100, 50)
GUISetState()
While 1
    Local $cursor = MouseGetPos()
    Local $winpos = WinGetPos ($GUI, "")
    $Msg = GUIGetMsg(1)
    Select
        Case $Msg[0] = $GUI_EVENT_CLOSE Or $Msg[0] = $fermerAppli
            ExitLoop
        Case $Msg[0] = $GUI_EVENT_PRIMARYDOWN
            $CursorInfo = GUIGetCursorInfo()
            If $CursorInfo[4] = 0 Then
                GUISetCursor(9)
                Do
                    $cursor = MouseGetPos()
                    WinMove($GUI, "", $cursor[0]-$cursorInfo[0], $cursor[1]-$cursorInfo[1])
                Until GUIGetMsg() = $GUI_EVENT_PRIMARYUP
                GUISetCursor(-1)
            EndIf
        Case $Msg[0] = $justuntest
            MsgBox("","","ha ben, ca marche ca")
    EndSelect
WEnd
GUIDelete()
méééé, je cherche encore pour que ca bouge uniquement quand on tape dans du "vide" !

Edit : voilaaaa ! c'est bien bordelique comme j'aime, mais ca permet de déplacer une fenetre sans bordure en cliquant entre les controles, a la maniere d'une fenetre msn...
Signez ici
AirPE
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 23 mars 2009 09:40
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#8

Message par AirPE »

Ah beh merci beaucoup à toi! :P bon j'ai rajouté un "-1" dans cette ligne:

WinMove($GUI, "", $cursor[0]-$cursorInfo[0]-1, $cursor[1]-$cursorInfo[1]-1)

parce que je viens de remarquer que quand on clique juste sans bouger la souris, la GUI se déplace quand même de 1 pixel, voilà c'était juste pour info.

Il reste plus que le problème sur le label... :?

Sinon merci pour le script! J'ai essayé cette semaine d'utiliser GUIGetMsg(1) et donc avec les $Msg[0] pour utiliser une fenêtre enfant mais je comprends pas trop à quoi ça sert! :oops: bon j'avoue que j'ai pas énormément chercher aussi...
M'enfin tant qu'on y est tu pourrais m'expliquer vite fait? :roll:

Merci encore à toi!
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#9

Message par Iste »

GUIGetMsg() par defaut renvoi juste le handle du bouton (ou autre truc) sur le quel ta cliqué.
si tu met l'option 1, il renvoi l'handle dans l'array [0], et d'autre info dans les autre cases.
Comme tu peux le voir, jai pas utilisé les autre, donc ca servait un peu a rien xD mais bon, "reflexe", je fais toujours comme ca...
(en fait, je le met par "defaut", car mes script on souvent plusieurs fenetres, et du coup, je peux faire :

Code : Tout sélectionner

Case $Msg[0] = $GUI_EVENT_CLOSE
            If $Msg[1] = $Fenetreprincipal then
                Exit
            Else
                GUIDelete ($Msg[1]=
            EndIf
petit code tres pratique pour gerer la fermeture des sous fenetre et du programme)

Maisheu, c'est quoi exactement le probleme des label ? si c'est pour pouoir bouger sur eux aussi c'est simple
La en fait, j'ai juste repris ton code et rajouté la condition suivante :

Code : Tout sélectionner

            $CursorInfo = GUIGetCursorInfo()
            If $CursorInfo[4] = 0 Then
(toutes les autre modif, c'est que je me suis basé sur le code de GaRydelaMer, pis que j'ai fais des modif, pour enfin me baser sur ton code ^^' mais sinon c'est ca)

Cette condition dit : "si la souris n'est sur aucun truc" (car $CursorInfo[4] = handle du control sous la souris, 0 veut dire aucun) , cela pour pouvoir bouger la fenetre uniquement en cliquant dans le vide. Mais si tu veux rajouter les label a la liste, pas de pb (juste un peu long) :

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$GUI = GUICreate("test", 200, 100, -1, -1, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW)
$fermerAppli = GUICtrlCreateButton("x", 0, 0, 20, 20)
$justuntest = GUICtrlCreateButton("Test me !", 50, 50)
$justuntest2 = GUICtrlCreateLabel("Test me !", 100, 50)
GUISetState()
While 1
    Local $cursor = MouseGetPos()
    Local $winpos = WinGetPos ($GUI, "")
    $Msg = GUIGetMsg(1)
    Select
        Case $Msg[0] = $GUI_EVENT_CLOSE Or $Msg[0] = $fermerAppli
            ExitLoop
        Case $Msg[0] = $GUI_EVENT_PRIMARYDOWN
            $CursorInfo = GUIGetCursorInfo()
            If $CursorInfo[4] = 0 Or $CursorInfo[4] = $justuntest2 Then
                GUISetCursor(9)
                Do
                    $cursor = MouseGetPos()
                    WinMove($GUI, "", $cursor[0]-$cursorInfo[0], $cursor[1]-$cursorInfo[1])
                Until GUIGetMsg() = $GUI_EVENT_PRIMARYUP
                GUISetCursor(-1)
            EndIf
        Case $Msg[0] = $justuntest
            MsgBox("","","ha ben, ca marche ca")
    EndSelect
WEnd
GUIDelete()
vala, juste rajouté dans la condition "Or $CursorInfo[4] = $justuntest2", ce qui doit etre fait pour chaque exeption...
Mais bizarre, le curseur veut pas changer par contre....
Signez ici
AirPE
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 23 mars 2009 09:40
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#10

Message par AirPE »

bonjour!

Bon j'ai testé ton code ça marche nickel!
Quand je l'intègre à mon script, c'est toujours la même histoire! :(
Donc j'ai fait plein de test, le problème ne vient ni des icônes, ni du fait que mon select se trouve dans une fonction, ni que les labels aient un Font de défini, enfin j'ai testé plein de truc mais je ne trouve pas le problème! :(
J'ai mis tout mon script (modifié bien sûr pour enlever les infos perso), avec le txt et les icônes...

Merci d'avance car je suis sûr que tu va trouver d'où vient mon problème! :P

Pour le fait que le curseur ne change pas sur le label oui j'avais déjà remarqué :) , j'ai réglé le problème très simplement: j'ai enlevé le changement de curseur! :lol: vu que c'est pas important je m'en fiche, c'était juste histoire de montrer à l'utilisateur qu'il était en train de bouger la GUI.

Et merci pour les explications sur GUIGetMsg(), quand je reprendrai mon aventure avec la fenêtre enfant je testerai! :wink:
Fichiers joints
test.zip
(272.01 Kio) Téléchargé 184 fois
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#11

Message par Iste »

alors alors, apres quelque tests, en fait, c'etait le Clic qui était pas capté comme un Down du bouton gauche, mais uniquement comme un clic sur le label.
Donc le code de bougage se lancait pas. Du coup, j'ai viré tout ca, et fait une verification manuel du clic gauche avant...
Change ta fonction Hide() par ca

Code : Tout sélectionner

Func Hide()
    Local $cursorInfo = GUIGetCursorInfo($GUI)
    Local $cursor = MouseGetPos()
    
    While $cursorInfo[0] >= 0 And $cursorInfo[0] <= 200 And $cursorInfo[1] >= 0 And $cursorInfo[1] <= 100
        If GUICtrlGetState($fermerAppli) = 96 Then
            GUICtrlSetState($fermerAppli, $GUI_SHOW)
            
            If $oneWord = False Then
                GUICtrlSetState($fermerAppli, $GUI_SHOW)
                GUICtrlSetState($Suivant, $GUI_SHOW)
            EndIf
            
            If $notEnoughWord = False Then
                GUICtrlSetState($delLine, $GUI_SHOW)
            EndIf
        EndIf
        
        $Msg = GUIGetMsg(1)
        $cursorInfo = GUIGetCursorInfo()
        If $cursorInfo[2] = 1 And ($cursorInfo[4] = 0 Or $cursorInfo[4] = $labelHeure Or $cursorInfo[4] = $label1 Or $cursorInfo[4] = $label2 Or $cursorInfo[4] = $Icon1 Or $cursorInfo[4] = $Icon2) Then
            $CLICGOK = 1
        Else
            $CLICGOK = 0
        EndIf
        
        Select
            Case $Msg[0] = $GUI_EVENT_CLOSE Or $Msg[0] = $fermerAppli
                FermerAppli()
                
            Case $CLICGOK = 1
                    Do
                        $cursor = MouseGetPos()
                        WinMove($GUI, "", $cursor[0]-$cursorInfo[0]-1, $cursor[1]-$cursorInfo[1]-1)
                    Until GUIGetMsg() = $GUI_EVENT_PRIMARYUP
                    $CLICGOK = 0

            Case $Msg[0] = $Suivant
                word()
                
            Case $Msg[0] = $delLine
                deleteLine()
                
        EndSelect
        
        Heure()
    
        $cursorInfo = GUIGetCursorInfo($GUI)
    WEnd    
    
    GUICtrlSetState($Suivant, $GUI_HIDE)
    GUICtrlSetState($fermerAppli, $GUI_HIDE)
    GUICtrlSetState($delLine, $GUI_HIDE)
EndFunc
Et au début, rajouter les déclaration de variable de ma nouvelle variable (et aussi de $motSuivant qui semblait oublié ^^)

Code : Tout sélectionner

Global $actualNumber = 0, $word, $floor, $notEnoughWord = True, $oneWord = True, $table, $file, $lastModifiedHour = @HOUR, $lastModifiedMin = @MIN, $lastModifiedSec = @SEC, $motSuivant, $CLICGOK
► Afficher le texteExplications
Modifié en dernier par Iste le jeu. 23 avr. 2009 15:01, modifié 1 fois.
Signez ici
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#12

Message par GaRydelaMer »

Alors 1 bug qui crashe tout à la ligne: 143, qd on clique pour afficher le texte suivant tu dois verifier $table[$floor] que $floor < ubound($table)

Random(1, $Table[0], 1)

et la ca marche même le déplacement !!!

Edit:
Etonnant mais comme te l'as dit juste avant moi Iste, tu as des variables qui sont pas déclarée.
AirPE
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 23 mars 2009 09:40
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#13

Message par AirPE »

Merci merci A vous deux pour votre aide!! :D
Pour la variable $motSuivant non déclarée il s'agit en fait de la variable $Suivant, c'est juste que avant de poster j'ai fait des petites modifs, mais c'est la même variable! :wink: désolé de l'avoir omis!

Par contre GaRydelaMer je ne comprends pas ton dernier message:
GaRydelaMer a écrit :Alors 1 bug qui crashe tout à la ligne: 143, qd on clique pour afficher le texte suivant tu dois verifier $table[$floor] que $floor < ubound($table)

Random(1, $Table[0], 1)

et la ca marche même le déplacement !!!

Edit:
Etonnant mais comme te l'as dit juste avant moi Iste, tu as des variables qui sont pas déclarée.
Si je comprend bien, il faudrait que je vérifie que $floor est bien inférieur à la taille max de $table?
Le truc c'est que $floor, si je ne m'abuse, sera toujours entre 1 et le nb max de $table donc pourquoi vérifier s'il est bien en dessous?

Ou alors je n'ai rien compris! :lol:
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#14

Message par GaRydelaMer »

Bin justement ton floor calculé comme tu le fait a des chance d'être égal à $table[0] + 1 et la boom !!!

De plus pourquoi faire un floor alors qu'avec le dernier paramètre de random tu as déja un entier !!!

$table[0]=3
$table[1]=Mot 1
$table[2]=Mot 2
$table[3]=Mot 3

tu fais un random : $indx = random(1, $table[0], 1), avec ca tu as un entier ($indx) de 1 à 3 dans l'exemple.

Code : Tout sélectionner

    Do
        $indx = Random(1, $table[0], 1)
    Until $indx <> $actualNumber And $table[$indx] <> ""

    $actualNumber = $indx

    $word = StringSplit($table[$indx], "*", 1)
 
AirPE
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 23 mars 2009 09:40
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#15

Message par AirPE »

Ok ok j'ai compris :!:

Merci pour l'explication modification faite!

Par contre j'ai encore un soucis... j'espère le dernier pour le déplacement de la GUI! :x
Quand la GUI est derrière une fenêtre (ce qui sera toujours le cas), et que je place la souris là où se situe la GUI (derrière la fenêtre), j'ai une erreur:

C:\Users\*\Desktop\test.au3 (81) : ==> Subscript used with non-Array variable.:
If $cursorInfo[2] = 1 And ($cursorInfo[4] = 0 Or $cursorInfo[4] = $labelHeure Or $cursorInfo[4] = $label1 Or $cursorInfo[4] = $label2 Or $cursorInfo[4] = $Icon1 Or $cursorInfo[4] = $Icon2) Then
If $cursorInfo^ ERROR

Aaaah oui je sais il est lourd le petit nouveau avec ses problèmes! :mrgreen:
AirPE
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 23 mars 2009 09:40
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#16

Message par AirPE »

Bon en fait j'ai trouvé le problèmre...
Il faut juste spécifier à la fonction GUIGetCursorInfo que c'est de la GUI que nous voulons, donc:

Code : Tout sélectionner

$Msg = GUIGetMsg(1)
        $cursorInfo = GUIGetCursorInfo($GUI)
        If $cursorInfo[2] = 1 And ($cursorInfo[4] = 0 Or $cursorInfo[4] = $labelHeure Or $cursorInfo[4] = $label1 Or $cursorInfo[4] = $label2 Or $cursorInfo[4] = $Icon1 Or $cursorInfo[4] = $Icon2) Then
            $CLICGOK = 1
        Else
            $CLICGOK = 0
        EndIf
Mais je viens ENCORE de trouver un autre problème!! :twisted: Ca devient un tantinet lourd quand même! :(

J'explique:
La GUI se trouve sur le bureau (normal), et si on s'amuse comme moi :P à faire des sélections dans le vide sur le bureau, c'est à dire maintenir clique gauche et sélectionner, et que le curseur arrive sur la GUI et bien lui le capte comme si on voulait la bouger alors que pas du tout!

Il faudrait vérifier si c'est un clique maintenu enfoncé, que le clique ne s'est pas fait avant d'être sur la GUI? Ou quelque chose comme ça peut-être? Je sais pas... Là tout de suite j'ai pas d'idée...
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#17

Message par Iste »

et avec

Code : Tout sélectionner

$cursorInfo = GUIGetCursorInfo()
        If Not @error  Then
            If $cursorInfo[2] = 1 And ($cursorInfo[4] = 0 Or $cursorInfo[4] = $labelHeure Or $cursorInfo[4] = $label1 Or $cursorInfo[4] = $label2 Or $cursorInfo[4] = $Icon1 Or $cursorInfo[4] = $Icon2) Then
                $CLICGOK = 1
            Else
                $CLICGOK = 0
            EndIf
        EndIf
au lieu de

Code : Tout sélectionner

$cursorInfo = GUIGetCursorInfo()
        If $cursorInfo[2] = 1 And ($cursorInfo[4] = 0 Or $cursorInfo[4] = $labelHeure Or $cursorInfo[4] = $label1 Or $cursorInfo[4] = $label2 Or $cursorInfo[4] = $Icon1 Or $cursorInfo[4] = $Icon2) Then
            $CLICGOK = 1
        Else
            $CLICGOK = 0
        EndIf
► Afficher le textecode complet
Modifié en dernier par Iste le dim. 10 mai 2009 23:56, modifié 1 fois.
Signez ici
AirPE
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 23 mars 2009 09:40
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Déplacer une GUI avec pour style $WS_POPUPWINDOW

#18

Message par AirPE »

Ah wé ok... Moi je voyais un truc bien compliqué mais pourquoi pas aussi comme ça!! :lol:
Bon et bien cette fois-ci je crois que c'est officiel! Le sujet est clos!! :D

Je te remercie beaucoup pour ton aide, tes explications et ta patience! Ainsi qu'à GaRydelaMer, merci à vous deux!! :D

Ca fait un peu message d'adieu! C'est triste quand même!
Mais à mon avis on va vite se recroiser pour ma prochaine étape sur un futur sujet pour gérer une fenêtre enfant! :P
Bonne nuit! :wink:
Répondre