#2300 closed Bug (Rejected)
$WS_EX_MDICHILD style affects all childs created after it so they act like MDI childs
| Reported by: | AoRaToS | Owned by: | |
|---|---|---|---|
| Milestone: | Component: | AutoIt | |
| Version: | 3.3.9.4 | Severity: | None |
| Keywords: | Cc: |
Description
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/
Attachments (0)
Change History (2)
comment:1 Changed 12 years ago by Jon
- Resolution set to Rejected
- Status changed from new to closed
comment:2 Changed 11 years ago by anonymous
Guidelines for posting comments:
- You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
- In-depth discussions should take place on the forum.
For more information see the full version of the ticket guidelines here.

This issue is still happening with the latest version.