- Offizieller Beitrag
Ich mach zu dem Thema jetzt mal nen separaten Thread auf.
Wir hatten ja hier schon damit begonnen.
Die allg. Syntax lautet ja: GUICtrlSendMsg ( controlID, msg , wParam, lParam )
In allen Beispielen, die ich dazu gefunden habe wird die Funktion immer so verwendet:
Global Const $NAME = HEX-Wert ; msg
GUICtrlSendMsg( controlID, $NAME , 1, 0 )
Hier mal ein Beispiel mit: Set ReadOnly (Ein/Aus)
#include <GuiConstants.au3>
Global Const $R_ONLY = 0xCF
GuiCreate("MyGUI", 392, 323,-1, -1)
$Input_1 = GuiCtrlCreateInput("", 110, 80, 190, 50)
$b_ein = GUICtrlCreateButton("Read only ein", 20, 20)
$b_aus = GUICtrlCreateButton("Read only aus", 120, 20)
GuiSetState()
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $b_ein
; Read Only ein
GUICtrlSendMsg($Input_1, $R_ONLY, 1, 0)
Case $msg = $b_aus
; Read Only aus
GUICtrlSendMsg($Input_1, $R_ONLY, 0, 0)
EndSelect
WEnd
Exit
Alles anzeigen
Woher bekomme ich aber den notwendigen HEX-Wert ? Gibt es dafür irgendwo eine Übersicht ?
Edit:
So, ich habe nun mal stundenlang gegoogelt und mich durch Foren und Anleitungen gelesen.
Fazit:
In anderen Sprachen (VBA, Delphi) kann ich die Message-ID bei SendMessage( ) genauso senden, wie bei Microsoft deklariert (z.B. Edit-Control-Message: "EM_SETPASSWORDCHAR"). Aber in Autoit geht das leider nicht so. Da brauch ich diesen 'blöden' HEX-Wert. :weinen: