Hallo Gemeinde,
habe folgendes Problem:
GUI erstellt mit einigen Ctrls, wie Button und Inputs. Die Ansteuerung der Ctrls mittels Tabulatortaste in der Reihenfolge ihrer Programmierung funktioniert einwandfrei. Habe nun ein embedded IE-Window _IECreateEmbedde() und GUICtrlCreateObj( ... ) erfolgreich hinzugefügt - mittels _IENavigate() aufgerufene Seite wird auch fehlerfrei angezeigt. Bloß, die Navigation per Tabulatortaste zwischen den den GUI-Ctrls funktioniert nicht mehr. Keine Reaktion mehr bei Tabulatortastendruck!
Was mach ich falsch? Wo liegt der Fehler? Ich konnte weder etwas dazu "googeln" noch habe ich in der Hilfe etwas Passendes gefunden.
Hier das Beispiel:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ie.au3>
#include <StaticConstants.au3>
$TestGUI =GUICreate("TestGUI", 800, 600, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
$GUI_Button_Ok = GUICtrlCreateButton("&Weiter", 100, 560, 100, 30)
$GUI_Button_Can = GUICtrlCreateButton("&Abbrechen", 300, 560, 100, 30)
GUISetState(@SW_SHOW, $TestGUI)
; #cs
$oIE = _IECreateEmbedded()
$ActiveX = GUICtrlCreateObj($oIE, 240, 40, 240, 200)
_IENavigate($oIE, "www.autoit.de")
; #ce
while 1 * Sleep(100)
$msg = GUIGetMsg(1)
Select
Case $msg[0] = $GUI_EVENT_CLOSE
GUIDelete($TestGUI)
Exit
EndSelect
Select
case $msg[1] = $TestGUI
Select
Case $msg[0] = $GUI_Button_Can
GUIDelete($TestGUI)
Exit
Case $msg[0] = $GUI_Button_Ok
ExitLoop
EndSelect
EndSelect
WEnd
$TestGUI1 = GUICreate("Hier steht ein Text", 500, 300, -1, -1);, BitOr($WS_CAPTION, $WS_POPUP, $WS_TABSTOP));, $WS_EX_TOPMOST)
GUICtrlCreateLabel("Hier steht noch ein Text", 10, 10, 480, 15, $SS_CENTER)
GUICtrlCreateLabel("Eingabe 1", 10, 50, 200, 15)
$inp1 = GUICtrlCreateInput("", 10, 70, 200, 20, 0x0020)
GUICtrlCreateLabel("Eingabe 2", 10, 120, 200, 15)
$inp2 = GUICtrlCreateInput("", 10, 140, 200, 20, 0x0020)
GUICtrlCreateLabel("Eingabe 3", 10, 180, 200, 15)
$inp3 = GUICtrlCreateInput("", 10, 200, 200, 20, 0x0020)
$GUI1_Button_Ok = GUICtrlCreateButton("&Weiter", 100, 260, 100, 30)
$GUI1_Button_Can = GUICtrlCreateButton("&Abbrechen", 300, 260, 100, 30)
GUISetState(@SW_SHOW, $TestGUI1)
while 1 * Sleep(100)
$msg = GUIGetMsg(1)
Select
Case $msg[0] = $GUI_EVENT_CLOSE
GUIDelete($TestGUI1)
ExitLoop
EndSelect
WEnd
Exit
Zum Nachvollziehen einfach #cs und #ce aktivieren.
Ich hoffe, jemand kann mir helfen.
HalleMike
edit:
Habe den Quellcode erweitert, damit das Problem auch wirklich beim Aufruf der 2. GUI auftritt.
HM