Ich seh so keinen Fehler...
Als Workaround:
Wenn WinActivate funktioniert -> mit GuiRegisterMsg auf Mausklicks reagieren und das Fenster einblenden, wenn es im Hintergrund ist, und ein anderes Childfenster im Vordergrund.
EDIT:
grad mal getestet:
AutoIt
#include <WindowsConstants.au3>
$hGui = GUICreate("Main", 800, 600)
$hChild1 = GUICreate("Child 1", 300, 200, 10, 10, BitOR($WS_CHILD, $WS_CAPTION), 0, $hGui)
$hChild2 = GUICreate("Child 2", 300, 200, 200, 210, BitOR($WS_CHILD, $WS_CAPTION), 0, $hGui)
GUISetState(@SW_SHOW, $hGui)
GUISetState(@SW_SHOW, $hChild1)
GUISetState(@SW_SHOW, $hChild2)
GUIRegisterMsg($WM_LBUTTONDOWN,"WM_LBUTTONDOWN")
While GUIGetMsg() <> -3
WEnd
Func WM_LBUTTONDOWN($hWnd, $iMsg, $wParam, $lParam)
ConsoleWrite($hWnd&":"&$iMsg&":"&$wParam&":"&$lParam&@crlf)
if $hWnd=WinGetHandle($hChild1) then
WinActivate($hChild1)
else
WinActivate($hChild2)
endif
EndFunc
Alles anzeigen
IWie funktioniert das mit WinActivate nicht. Hab auch probiert mit SW_HIDE,... Geht alles nicht. wird wohl doch schwieriger