- Offizieller Beitrag
Mir ist gerade eine Besonderheit aufgefallen, mit der ich bereits bei einigen GUIs zu kämpfen hatte.
Problem:
Wenn ich den Befehl:
GUICtrlSetState($hButton, $GUI_ONTOP)
[/autoit]
benutzt hatte, dann wollte das GUI-Element (z.B. ein Button) oft nicht im Vordergrund erscheinen, ja er war sogar mitunter erst gar nicht sichtbar. Wenn man dann mit der Maus über die GUI fuhr, dann erschien plötzlich der Button.
Dieses Verhalten konnte ich mir bisher nicht erklären, was dann dazu geführt hat, dass ich das anders gelöst hatte.
Jetzt bin ich aber dahintergekommen, woran das liegt.
Dazu hier ein einfaches Beispielscript:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
$hGui = GUICreate('Test', 400, 300)
$hLabel = GUICtrlCreateLabel('Irgend ein Text', 0, 0, 400, 300)
$hButton = GUICtrlCreateButton('Drück mich', 50, 100, 100, 25)
; an dieser Stelle führt der folgende Befehl dazu, dass der Button hinter das Label gesetzt wird (verschwindet)
GUICtrlSetState($hButton, $GUI_ONTOP)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]; aber hier wird der Button nach vorne geholt
;~ GUICtrlSetState($hButton, $GUI_ONTOP)
While True
Switch GUIGetMsg()
Case $hButton
MsgBox(0, 'Test', 'Button')
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Die Lösung:
Den Befehl GUICtrlSetState($hButton, $GUI_ONTOP) darf man erst benutzen, nachdem man das Fenster mit GUISetState() sichtbar gemacht hat.
Vielleicht hatte ja auch einer von euch schon damit zu kämpfen...