﻿id	summary	reporter	owner	description	type	status	milestone	component	version	severity	resolution	keywords	cc
2300	$WS_EX_MDICHILD style affects all childs created after it so they act like MDI childs	AoRaToS		"I have noticed a weird behavior when using $WS_EX_MDICHILD.

I create a main GUI with 2 buttons.
Each button creates a new GUI.
The first one without $WS_EX_MDICHILD.
The second one with $WS_EX_MDICHILD.

I click the first one and the other GUI is created (without $WS_EX_MDICHILD):
If I drag the main GUI the other GUI is separate and doesn't move, which is expected.

Then I click the second one for the next GUI to be created (with $WS_EX_MDICHILD):
If I now drag the main GUI, both of the other GUIs move with it.

If I close the second GUI, the first one still moves if I drag the main one.
If I close the first one and re-open it, it still moves in relation to the Main GUI (if I drag the main GUI it follows)

Is this how it's supposed to be? Does the style affect all GUIs created even without the style?

Here is a script to try it out:

(Follow the instructions above)

{{{
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt(""GUIOnEventMode"", 1)
Opt(""GUICloseOnESC"", 0)

Global $Main

MainGUI()


Func MainGUI()
    $Main = GUICreate(""Main"", 350, 350)
    GUISetOnEvent($GUI_EVENT_CLOSE, ""WindowClose"")
    $button1 = GUICtrlCreateButton(""Child 1 - no MDI_CHILD"", 75, 100, 150, 20)
    GUICtrlSetOnEvent($button1, ""Child1"")
    $button2 = GUICtrlCreateButton(""Child 2 - with MDI"", 75, 150, 150, 20)
    GUICtrlSetOnEvent($button2, ""Child2"")
    GUISetState(@SW_SHOW, $Main)
EndFunc

Func Child1()
    $ChildGUI1 = GUICreate(""Child 1 - no MDI_CHILD"", 180, 180, 100, 100, Default, Default, $Main)
    GUISetOnEvent($GUI_EVENT_CLOSE, ""WindowClose"")
    GUISetState(@SW_SHOW, $ChildGUI1)
EndFunc

Func Child2()
    $ChildGUI2 = GUICreate(""Child 2 - with MDI"", 180, 180, 100, 100, Default, $WS_EX_MDICHILD, $Main)
    GUISetOnEvent($GUI_EVENT_CLOSE, ""WindowClose"")
    GUISetState(@SW_SHOW, $ChildGUI2)
EndFunc


Func WindowClose()
    GUIDelete(@GUI_WinHandle)
    If @GUI_WinHandle = $Main Then
        Exit
    EndIf
EndFunc


While 1
    Sleep(100)
WEnd
}}}

[http://www.autoitscript.com/forum/topic/147406-weird-behavior-with-ws-ex-mdichild/]"	Bug	closed		AutoIt	3.3.9.4	None	Rejected		
