Code : Tout sélectionner
Opt("MustDeclareVars", 1)
Opt("GUIOnEventMode", 1)
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Global $GUI_Parent, $GUI_ENFANT1, $GUI_ENFANT2, $Tab
_GUI_Parent()
Func _GUI_Parent()
Global $GUI_Parent = GUICreate("Parent", 753, 606, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
Global $Control = GUICtrlCreateTreeView(7, 8, 193, 513, BitOR($GUI_SS_DEFAULT_TREEVIEW,$WS_BORDER))
Global $Control_0 = GUICtrlCreateTreeViewItem("Test", $Control)
GUICtrlSetOnEvent(-1, "_GUI_ENFANT1_ON")
GUISetState(@SW_SHOW, $GUI_Parent)
_GUI_ENFANT1()
EndFunc
Func _GUI_ENFANT1()
Global $GUI_ENFANT1 = GUICreate("", 545, 513, 201, 8, BitOr($WS_CHILD,$WS_TABSTOP), -1, $GUI_Parent)
Global $Tab = GUICtrlCreateTab(7, 0, 520, 514)
GUICtrlSetOnEvent(-1, "_TAB_Change")
Global $TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
GUICtrlSetState(-1,$GUI_SHOW)
Global $TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
Global $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 96, 48, 97, 17)
Global $Button1 = GUICtrlCreateButton("Button1", 112, 88, 75, 25)
GUICtrlCreateTabItem("")
GUISetState(@SW_HIDE, $GUI_ENFANT1)
_GUI_ENFANT2()
EndFunc
Func _GUI_ENFANT2()
Global $GUI_ENFANT2 = GUICreate("", 457, 105, 32, 360, $WS_POPUP, $WS_EX_MDICHILD, $GUI_ENFANT1)
GUIRegisterMsg($WM_MOVE, "MY_WM_MOVE")
GUISetBkColor(0x3A6EA5)
GUISetState(@SW_HIDE, $GUI_ENFANT2)
EndFunc
Func _TAB_Change()
If GUICtrlRead($Tab) = 0 Then
GUISetState(@SW_SHOW, $GUI_ENFANT1)
GUISetState(@SW_SHOW, $GUI_ENFANT2)
Else
GUISetState(@SW_SHOW, $GUI_ENFANT1)
GUISetState(@SW_HIDE, $GUI_ENFANT2)
EndIf
EndFunc
Func _GUI_ENFANT1_ON()
GUISetState(@SW_SHOW, $GUI_ENFANT1)
GUISetState(@SW_SHOW, $GUI_ENFANT2)
EndFunc
Func _Exit()
Exit
EndFunc
Func MY_WM_MOVE($hWnd, $Msg, $wParam, $lParam) ; http://www.autoitscript.fr/forum/viewtopic.php?f=3&t=5111&start=0&hilit=Suivi+de+gui
Local $nNotifyCode, $nID, $hCtrl, $aGui1
$nNotifyCode = BitShift($wParam, 16)
$nID = BitAND($wParam, 0x0000FFFF)
$hCtrl = $lParam
$aGui1 = WinGetPos($GUI_ENFANT1)
If $nID <> 2 And $nNotifyCode = 0 Then
WinMove($GUI_ENFANT2, "", $aGui1[0] + 32, $aGui1[1] + 360)
EndIf
EndFunc ;==>MY_WM_COMMAND
While 1
Sleep(1000)
WEnd