Functions > GUI >


GUIGetMsg

Interroge la GUI pour savoir si des �v�nements ont �t� d�clench�s.

GUIGetMsg ( [advanced = 0] )

Param�tre

advanced [optionnel] Faut-il retourner des informations suppl�mentaires dans un tableau.
    $GUI_EVENT_SINGLE (0) = (par d�faut) Retourne un �v�nement unique.
    $GUI_EVENT_ARRAY (1) = retourne un tableau contenant l'�v�nement et des informations compl�mentaires.

Les constantes sont d�finies dans GUIConstantsEx.au3.

Valeur de retour

Retourne un �v�nement, ou un tableau selon le param�tre "advanced".

L'�v�nement retourn� est l'ID du contr�le qui envoie le message, ou un �v�nement sp�cial (comme la fermeture d'une fen�tre, ou une fen�tre minimis�). Ou, s'il n'y a pas de message, l'�v�nement est �gal � 0.


ID de l'�v�nement: ID du contr�le qui a envoy� le message
0: Aucun �v�nement
$GUI_EVENT_CLOSE: Bo�te de dialogue ferm�e (par bouton d�fini, ou par menu syst�me).
$GUI_EVENT_MINIMIZE: Bo�te de dialogue minimis�e avec le menu syst�me.
$GUI_EVENT_RESTORE: Bo�te de dialogue restaur�e par clic sur l'ic�ne de la barre de t�che.
$GUI_EVENT_MAXIMIZE: Bo�te de dialogue maximis�e avec le menu syst�me.
$GUI_EVENT_MOUSEMOVE: Le curseur de la souris s'est d�plac�.
$GUI_EVENT_PRIMARYDOWN: Le bouton principal de la souris a �t� enfonc�.
$GUI_EVENT_PRIMARYUP: Le bouton principal de la souris a �t� rel�ch�.
$GUI_EVENT_SECONDARYDOWN: Le bouton secondaire de la souris a �t� enfonc�.
$GUI_EVENT_SECONDARYUP: Le bouton secondaire de la souris a �t� rel�ch�.
$GUI_EVENT_RESIZED: La bo�te de dialogue a �t� redimensionn�e.
$GUI_EVENT_DROPPED: Fin d'une action glisser-d�poser, @GUI_DragId, @GUI_DragFile et @GUI_DropId seront utilis�s pour r�cup�rer de l'ID/fichier du contr�le impliqu�.

Les constantes sont d�finies dans GUIConstantsEx.au3.


Lorsque vous utilisez le param�tre "advanced" les informations sont retourn�es dans un tableau avec des informations compl�mentaires:
   [0] = 0 ou l'ID de l'�v�nement ou l'ID du contr�le
   [1] = Le handle de la fen�tre o� l'�v�nement s'est d�clench�
   [2] = Le handle du contr�le o� l'�v�nement s'est d�clench� (le cas �ch�ant)
   [3] = L'abscisse X du curseur de la souris (relative � la fen�tre GUI)
   [4] = L'ordonn�e Y du curseur de la souris (relative � la fen�tre GUI)


Si l'option GUIOnEventMode est d�finie � 1, alors le retour de GUIGetMsg est toujours 0 et @error est mis � 1.

Si l'option GUIEventOptions est d�finie � 1, les boutons minimise, restaure et maximise n'auront aucun effet sur la fen�tre, juste une simple notification.

Remarques

Cette fonction ralentit automatiquement le CPU lorsque cela est n�cessaire de sorte qu'elle peut �tre utilis�e sans danger en boucles serr�es sans monopoliser tous les CPU.

Les informations sur la position de la souris et sur le contr�le survol� peuvent �tre obtenues avec GUIGetCursorInfo(). Aucun �v�nement n'est d�clench� lorsque la souris est sur un contr�le donc GUIGetCursorInfo() doit �tre appel�e pour obtenir le controlID.

En relation

GUICreate, GUICtrlCreate..., GUICtrlRead, GUICtrlSendMsg, GUICtrlSetOnEvent, GUIEventOptions (Option), GUIGetCursorInfo, GUIOnEventMode (Option)

Exemples

Exemple 1

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>

Example()

; Exemple - Appuyez sur le bouton pour voir la valeur des boutons radio
; Le script d�tecte �galement les changements d'�tat (ferm�/minimis�/d�lai d'attente, etc).
Func Example()
    Opt("GUICoordMode", 1)

    GUICreate("Radio Box Demo", 400, 280)

    ; Cr�e les contr�les
    Local $idButton_1 = GUICtrlCreateButton("B&utton 1", 30, 20, 120, 40)
    GUICtrlCreateGroup("Group 1", 30, 90, 165, 160)
    GUIStartGroup()
    Local $idRadio_1 = GUICtrlCreateRadio("Radio &0", 50, 120, 70, 20)
    GUICtrlCreateRadio("Radio &1", 50, 150, 60, 20)
    Local $idRadio_3 = GUICtrlCreateRadio("Radio &2", 50, 180, 60, 20)

    ; Initialise les variables que nous allons utiliser pour garder une trace des �v�nements de la GUI
    Local $iRadioVal1 = 0 ; Nous supposerons que 0 = premier bouton radio s�lectionn�, 2 = dernier bouton

    ; Affiche la GUI
    GUISetState(@SW_SHOW)

    ; Dans cette boucle de message, nous utilisons des variables pour garder une trace des changements apport�s aux radioBoutons,  une autre
    ; fa�on serait d'utiliser GUICtrlRead() � la fin de la lecture de l'�tat de chaque contr�le
    Local $idMsg = GUIGetMsg()

    While $idMsg <> $GUI_EVENT_CLOSE
       
        Select
            Case $idMsg = $GUI_EVENT_MINIMIZE
                MsgBox($MB_SYSTEMMODAL, "", "Dialogue minimis�", 2)

            Case $idMsg = $GUI_EVENT_MAXIMIZE
                MsgBox($MB_SYSTEMMODAL, "", "Dialogue restaur�", 2)

            Case $idMsg = $idButton_1
                MsgBox($MB_SYSTEMMODAL, "", "Bouton par d�faut cliqu�:" & @CRLF & "Radio " & $iRadioVal1)

            Case $idMsg >= $idRadio_1 And $idMsg <= $idRadio_3
                $iRadioVal1 = $idMsg - $idRadio_1

        EndSelect
        $idMsg = GUIGetMsg()
    WEnd
    
    MsgBox($MB_SYSTEMMODAL, "", "Dialogue clos")

    GUIDelete()
EndFunc   ;==>Example


Exemple 2

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Cr�e une GUI
    Local $hGUI1 = GUICreate("Example GUI1")
    ; Cr�e un bouton
    Local $idButton1 = GUICtrlCreateButton("Button1", 10, 10, 80, 22)
    ; Affiche la GUI
    GUISetState(@SW_SHOW, $hGUI1)

    ; Cr�e une autre GUI
    Local $hGUI2 = GUICreate("Example GUI2", 300, 300)
    ; Cr�e un bouton
    Local $idButton2 = GUICtrlCreateButton("Button2", 10, 10, 80, 22)
    ; Affiche la GUI
    GUISetState(@SW_SHOW, $hGUI2)

    ; Variable locale tableau pour des messages avanc�s
    Local $aMsg = 0

    Do
        ; Assigne � $aMsg les messages GUI avanc�s.
        $aMsg = GUIGetMsg(1)

        ; Selon la GUI
        Switch $aMsg[1]
            Case $hGUI1 ; L'�v�nement provient de la GUI1
                If $aMsg[0] = $idButton1 Then
                    MsgBox($MB_SYSTEMMODAL, "", "Bouton1 cliqu�.")
                EndIf

            Case $hGUI2 ; L'�v�nement provient de la GUI2
                ; Selon l'ID de l'�v�nement
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        GUIDelete($hGUI2)
                    Case $idButton2
                        MsgBox($MB_SYSTEMMODAL, "", "Button2 cliqu�.")
                EndSwitch
        EndSwitch
    Until ($aMsg[1] = $hGUI1) And ($aMsg[0] = $GUI_EVENT_CLOSE)

    ; Supprime la GUI principale
    GUIDelete($hGUI1)
EndFunc   ;==>Example