Functions > GUI >


GUICtrlRecvMsg

Envoie un message à un contrôle et retourne des informations dans lParam.

GUICtrlRecvMsg ( controlID , msg [, wParam [, lParamType]] )

Paramètres

controlID L'identifiant du contrôle (controlID retourné par une fonction GUICtrlCreate...(), ou -1 pour désigner le dernier contrôle créé.
msg Code d'un message à envoyer au contrôle tel que défini dans la documentation des contrôles Windows.
wParam [optionnel] Un premier paramètre 'integer' à envoyer au contrôle.
lParamType [optionnel] Définit le type de lParam qui sera retourné : 0 (par défaut) pour wParam et lParam, 1 pour lParam-String, 2 pour lParam RECT-structure.

Valeur de retour

Succès: Retourne la valeur renvoyée par l'API SendMessage Windows.
Échec: Retourne 0.

Remarques

Cette fonction permet d'envoyer des messages Windows spéciaux directement au contrôle en utilisant l'API SendMessage. Elle est utilisée pour activer des fonctions spéciales de contrôle non disponibles avec le simple éventail de fonctions GUICtrlRead() et GUICtrlUpdate....

Si les paramètres wParam et lParamType ne sont pas spécifiés, alors un tableau de deux éléments est retourné (LPwParam, LPlParam).

Le RECT est retourné dans un tableau de 4 éléments ((Left, Top, Right, Bottom).

En relation

GUICtrlSendMsg, GUICtrlUpdate...

Exemple

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

Example()

Func Example()
    ; Crée une interface graphique avec un contrôle d'édition.
    Local $hGUI = GUICreate("Example")
    Local $idEdit = GUICtrlCreateEdit("Line 0" & @CRLF, 0, 0, 400, 350)
    Local $idOK = GUICtrlCreateButton("OK", 310, 370, 85, 25)

    ; Réglages des données du contrôle d'édition.
    For $i = 1 To 25
        GUICtrlSetData($idEdit, "Line " & $i & @CRLF, 1)
    Next

    ; Définit le focus sur le contrôle d'édition.
    GUICtrlSetState($idEdit, $GUI_FOCUS)

    ; Affiche l'interface graphique.
    GUISetState(@SW_SHOW, $hGUI)

    ; Initialise la variable $aCtrlRecvMsg pour stocker la valeur retournée par GUICtrlRecvMsg.
    Local $aCtrlRecvMsg = 0

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Local $idMsg = GUIGetMsg()
    While $idMsg <> $GUI_EVENT_CLOSE
        if $idMsg = $idOK Then
                ; Envoie le message EM_GETSEL, pour récupérer la sélection en cours du contrôle d'édition.
                $aCtrlRecvMsg = GUICtrlRecvMsg($idEdit, $EM_GETSEL)

                ; Donne le focus au au contrôle d'édition.
                GUICtrlSetState($idEdit, $GUI_FOCUS)

                ; Si GUICtrlRecvMsg a retourné la valeur 0, une erreur s'est produite sinon afficher le contenu du tableau.
                If $aCtrlRecvMsg = 0 Then
                    MsgBox($MB_SYSTEMMODAL, "", "Une erreur est survenue. La valeur retournée était - " & $aCtrlRecvMsg)
                Else
                    MsgBox($MB_SYSTEMMODAL, "", "Début: " & $aCtrlRecvMsg[0] & " Fin: " & $aCtrlRecvMsg[1])
                EndIf
        EndIf 
        $idMsg = GUIGetMsg()
    WEnd

    ; Supprime la GUI précédente et tous ses contrôles.
    GUIDelete($hGUI)
EndFunc   ;==>Example