Funktionsreferenz


GUICtrlSendMsg

Schickt eine Nachricht an ein Control.

GUICtrlSendMsg ( controlID, msg , wParam, lParam )

Parameter

ControlID Die Identifikationsnummer des Controls (Control-ID), wie von einer GUICtrlCreate... Funktion zurückgegeben.
msg Typ der Nachricht, die an das Control gesendet werden soll, wie in der Microsoft-Dokumentation zu Windows controls definiert.
wParam Der erste Parameter, der an das Control gesendet wird.
lParam Der zweite Parameter, der an das Control gesendet wird.

Rückgabewert

Erfolg: Gibt den Wert zurück, der von der SendMessage Windows API zurückgegeben wurde (siehe Microsoft-Dokumentation).
Fehler: Gibt 0 zurück..

Bemerkungen

Diese Funktion erlaubt es, spezielle Windows-Nachrichten (messages) über die SendMessage API von Windows direkt an ein Control zu schicken. Sie wird verwendet, um bestimmte Möglichkeiten von Controls zu nutzen, die über die einfachen GUICtrlRead() und GUICtrlUpdate...()-Funktionen nicht erreichbar sind.

Die Parameter (wParam und lParam) können Ganzzahlen oder Strings sein.

GUICtrlSendMsg sollte für Nachrichten verwendet werden, die keinen speziellen Rückgabewert haben. Für kompliziertere Nachrichten, für die man zusätzliche Daten empfangen können muss, muss man die Funktion GUICtrlRecvMsg() verwenden.

- - - - - - - - Erklärung der Controls - - - - - - - -

Verwandte Funktionen

GUICtrlRecvMsg, GUICtrlCreate..., GUICtrlUpdate..., GUIGetMsg, GUICtrlRead

Beispiel


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

GUICreate("Meine GUI") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird

Local $nEdit = GUICtrlCreateEdit("Zeile 0", 10, 10)
GUICtrlCreateButton("Ok", 20, 200, 50)
GUISetState()

Local $n
For $n = 1 To 5
    GUICtrlSetData($nEdit, @CRLF & "Zeile " & $n)
Next


; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
Do
    Local $msg = GUIGetMsg()
    If $msg > 0 Then
        $n = GUICtrlSendMsg($nEdit, $EM_LINEINDEX, -1, 0)
        Local $nline = GUICtrlSendMsg($nEdit, $EM_LINEFROMCHAR, $n, 0)
        GUICtrlSetState($nEdit, $GUI_FOCUS) ; Fokus setzen

        MsgBox(0, "Aktuelle Zeile", $nline)
    EndIf
Until $msg = $GUI_EVENT_CLOSE