Bon, j'ai fait des tests et ce n'est pas encore ça. Le $GUI_ONTOP est perdu après navigation et ne semble pas être rétablissable même en le forçant (enfin, chez moi en tout cas).
Voici mon code de test :
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <IE.au3>
$url = "http://google.com"
GUICreate("essai", 300, 300)
$razorder = GUICtrlCreateButton("reset z-order", 100, 30, 150, 25)
$nav_std = GUICtrlCreateButton("nav standard", 20, 100, 150, 25)
$nav_wrapper = GUICtrlCreateButton("nav wrapper", 20, 140, 150, 25)
$nav_wrapper_ro = GUICtrlCreateButton("nav wrapper read-only", 20, 180, 150, 25)
$wb = _IECreateEmbedded()
GUICtrlCreateObj($wb, 10, 30, 70, 50)
$wb_shield = GUICtrlCreateLabel("", 5, 25, 60, 40)
GUICtrlSetBkColor($wb_shield, 0x00ff00)
GUICtrlSetState($wb_shield, $GUI_ONTOP)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit(0)
case $razorder
GUICtrlSetState($wb_shield, $GUI_ONTOP)
Case $nav_std
_IENavigate($wb, $url, 1)
Case $nav_wrapper
Navigate($url)
Case $nav_wrapper_ro
Navigate($url, True)
EndSwitch
WEnd
Func Navigate($url, $readonly = False)
; Navigation w/ eventual read-only management
; IN : URL to reach, flag indicating user can't interact w/ browser
; OUT : sucess:true ; failure:false
; GLB : $wb as embedded IE, $wb_shield w/ same coord than $wb to mimic read-only
If Not _IENavigate($wb, $url, 1) Then Return False
If $readonly Then GUICtrlSetState($wb_shield, $GUI_ONTOP)
Return True
EndFunc
Avez-vous une idée ?
--
EDIT : oui, mikell, c'était un oubli ds mon code de test. Mais, l'ayant rajouté, je comprends encore moins car voici l'étrangeté : avec GUICtrlSetState($wb_shield, $GUI_ONTOP), le label passe dessous, tandis que sans cette ligne (avant navigation), il est au-dessus (le vert est devant le navigateur) ;??? Bizarre
--
EDIT #2 : et, dans tous les cas, mon bouton $razorder n'a aucun effet : le GUICtrlSetState($wb_shield, $GUI_ONTOP) ne change rien au z-order courant (c-a-d qu'il ne fait pas passer le label devant s'il était derrière ni ne le met derrière s'il était devant comme ça semble le faire au démarrage de l'appli (voir mon EDIT ci-dessus)... Bon, faut que je me détende
--
EDIT #3 : J'ai créé un code test le plus simple, avec deux labels... Et chez moi le GUI_ONTOP ne semble pas fonctionner (tester sur une station XP ; faudrait que je regarde sur une autre aussi, mais il faut que ça fonctionne partout ds tous les cas - donc, ce cas-ci est à régler). Voici donc ce test dans lequel le label FRONT devrait être en avant-plan et ne l'est pas chez moi :
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
GUICreate("$GUI_ONTOP Test", 300, 300)
$front = GUICtrlCreateLabel("FRONT", 15, 40, 60, 40)
GUICtrlSetBkColor($front, 0xff0000)
$back = GUICtrlCreateLabel("BACK", 5, 25, 60, 40)
GUICtrlSetBkColor($back, 0x00ff00)
GUICtrlSetState($front, $GUI_ONTOP)
GUISetState()
While GUIGetMsg() <> $GUI_EVENT_CLOSE
WEnd
Qué né passa

?