Что нового

Как отучить окно с IE перехватывать события дочерних окон?

asdf8

Скриптер
Сообщения
564
Репутация
152
Такой пример :
Код:
#Include <IE.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 600, 400, -1, -1)
$oIE = ObjCreate("Shell.Explorer.2")
$hiE = GUICtrlCreateObj($oIE, 2, 2, 596, 396)
GUISetState(@SW_SHOW)

_IENavigate($oIE, 'http://ya.ru')
_IENavigate($oIE, 'http://google.com')

$Form2 = GUICreate("Form2", 170, 60, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME, $Form1)
GUISwitch($Form2)
$Input1 = GUICtrlCreateInput("Нажмите 'BACKSPACE'", 16, 20, 133, 21)
GUISetState(@SW_SHOW)
; GUISetState(@SW_DISABLE, $Form1)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
asdf8
Если дочернее окно не принципиально, то можно так
Код:
#Include <IE.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form2 = GUICreate("Form2", 170, 60, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)
$Input1 = GUICtrlCreateInput("Нажмите 'BACKSPACE'", 16, 20, 133, 21)

$Form1 = GUICreate("Form1", 600, 400, -1, -1)
$oIE = ObjCreate("Shell.Explorer.2")
$hiE = GUICtrlCreateObj($oIE, 2, 2, 596, 396)
GUISetState(@SW_SHOW,$Form1)

_IENavigate($oIE, 'http://ya.ru')
_IENavigate($oIE, 'http://google.com')

GUISetState(@SW_SHOW,$Form2)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
DarWiM [?]
Если дочернее окно не принципиально, то можно так

Дочернее окно в моем случае не принципиально, принципиален порядок создания окон - окно с браузером должно создаваться первым.
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
asdf8
Хм.. а можно поинтересоваться, зачем именно так?
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
DarWiM [?]
Хм.. а можно поинтересоваться, зачем именно так?
У меня этих дочерних окон полдюжины и половина из них с переменным количеством контролов разных типов да плюс окна скиновые, по мне проще написать одну функцию обработчик backspase для всех окон и работать с ними по принципу - нужно окно, создал его, стало не нужным удалил окно и освободил все ресурсы, чем отслеживать видимость, положение, освобождение ресурсов кучи окон и контролов.
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
asdf8
А почему нельзя сделать одно (например) окно и его постоянно использовать, перерисовывая содержимое? Ну а элементы удалять естественно..
 
Верх