Hi Leute,
ich hab da ein Problem mit dem GUICtrlSetOnEvent in zusammenhang mit GUICtrlSetBkColor.
Das Skript zum testen!
#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]Opt('GUIOnEventMode', 1)
[/autoit] [autoit][/autoit] [autoit]GUICreate("", 100, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit')
GUISetState()
GUICtrlCreateInput("", 10, 10, 80)
GUICtrlSetOnEvent(-1, "_Input")
GUICtrlCreateButton("2", 10, 50, 80)
GUICtrlSetOnEvent(-1, "_Button")
GUICtrlSetBkColor(-1, 0xFFFFFF)
While 1
Sleep(100)
WEnd
Func _Exit()
Exit
EndFunc
Func _Input()
MsgBox(0, "_Input", "_Input")
EndFunc
Func _Button()
MsgBox(0, "_Button", "_Button")
EndFunc
Da ich das Problem nicht lange umschreiben möchte bzw. meine Beschreibung möglicherweise falsch verstanden wird,
führt doch einfach mal diese drei Schritte aus, dann versteht ihr was mein Problem ist.
OS:WIN_XP/Service Pack 3 CPU:X86 OS:X86 AutoIt:3.3.6.1
- Klickt mit der Maus in das Inputfeld, gebt etwas ein und drückt dann auf Return.
=> Es erscheint die Nachricht "_Input".
=> Soweit alles OK!
- Schließt die Nachricht.
Klickt mit der Maus auf den "Button".
Es erscheint die Nachricht "_Button"
=> Immernoch alles OK!
- Schließt die Nachricht.
Klickt mit der Maus wieder in das Inputfeld, gebt etwas ein und drückt dann auf Return
=> Es erscheint wieder die Nachricht "_Input".
Schließt die Nachricht.
Es erscheint die Nachricht "_Button"
=> ERROR...Das sollte nicht passieren!
Kommentiert man die Zeile
[autoit]GUICtrlSetBkColor(-1, 0xFFFFFF)
[/autoit]
aus, dann funktionierts wieder wunderbar.
Was meint ihr zu dem Bug?
Ist das vielleicht gar kein Bug?
Als Workaround hab ich mir überlegt, ein Bild auf den Button zu legen.
Müsste ich aber erst recherchieren, da ich das bisher noch nie gemacht habe.
Wie sieht es mit GDIPlus aus? Kann man damit den Button "anmalen"?
Hatte auch bisher mit GDIPlus noch nichts am Hut.
PS:
Diesen Bug hab ich in der Schach.au3 (Inhalt von Quellcode.zip) gefunden.
PPS:
GUICtrlSetDefColor scheint auch betroffen zu sein...