Schickt eine Nachricht an ein Control.
GUICtrlSendMsg ( controlID, msg , wParam, lParam )
ControlID | Die Identifikationsnummer des Controls (Control-ID), wie von einer GUICtrlCreate... Funktion zurückgegeben, oder -1 für das zuletzt erzeugte Control. |
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. |
Erfolg: | Wert der von der SendMessage Windows API zurückgegeben wurde (siehe Microsoft-Dokumentation). |
Fehler: | 0. |
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 - - - - - - - -
GUICtrlCreate..., GUICtrlRead, GUICtrlRecvMsg, GUICtrlUpdate..., GUIGetMsg
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
Example()
Func Example()
GUICreate("Marquee Forschrittsfenster", 290, 90, -1, -1) ; Ein Beispiel zum starten und stoppen eines "Marquee"-Fortschrittsfensters.
Local $idProgress = GUICtrlCreateProgress(10, 10, 270, 20, $PBS_MARQUEE)
Local $idStart1 = GUICtrlCreateButton("&Start", 10, 60, 70, 25)
Local $idStart2 = GUICtrlCreateButton("&Start 2", 85, 60, 70, 25)
Local $idStop = GUICtrlCreateButton("S&topp", 160, 60, 70, 25)
GUISetState(@SW_SHOW)
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idStart1
GUICtrlSendMsg($idProgress, $PBM_SETMARQUEE, 1, 200) ; Sendet die Nachricht $PBM_SETMARQUEE, wParam mit 1 um das Forschrittsfenster zu starten und lParam mit dem Wert für die Fortschritts-Verzögerung.
Case $idStart2
GUICtrlSendMsg($idProgress, $PBM_SETMARQUEE, 1, 50) ; Sendet die Nachricht $PBM_SETMARQUEE, wParam mit 1 um das Forschrittsfenster zu starten und lParam mit dem Wert für die Fortschritts-Verzögerung.
Case $idStop
GUICtrlSendMsg($idProgress, $PBM_SETMARQUEE, 0, 0) ; Sendet die Nachricht $PBM_SETMARQUEE und wParam mit 0 um das Forschrittsfenster zu stoppen.
EndSwitch
WEnd
EndFunc ;==>Example