I have a GUI that uses an embedded IE object and some other controls. I want to be able to scroll the website that I'm on even when other controls are currently focused as long as my mouse is over the IE object. For this purpose I wanted to use GUICtrlSetState with $GUI_FOCUS. However calling GUICtrlSetState($hIE, $GUI_FOCUS) crashes the program.
#include <IE.au3>
#include <GUIConstantsEx.au3>
_Main()
Func _Main()
$hGUI = GUICreate("Focus Test", 1000, 800)
$oIE = _IECreateEmbedded()
$hIE = GUICtrlCreateObj($oIE, 3, 2, 994, 499)
$hInput = GUICtrlCreateInput("focus test", 3, 503, 994, 22)
GUISetState()
_IENavigate($oIE, "https://www.google.com/search?q=a", 0)
Local $aCInfo, $nActive = 0
Do
If WinActive($hGUI) Then
$aCInfo = GUIGetCursorInfo($hGUI)
If $aCInfo[1] <= 502 Then
If $nActive <> 1 Then
;GUICtrlSetState($hIE, $GUI_FOCUS)
$nActive = 1
ConsoleWrite("Active: " & $nActive & @CRLF)
EndIf
Else
$nActive = 0
EndIf
EndIf
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main