2014-02-11 1 views
0

Родительское окно создается этот код:Autoit_WinAPI_SetParent На ребенка двигаться, ребенок исчезает

Opt("WinTitleMatchMode", 3) 
Opt("GUIResizeMode", 1) 
$GUI2 = GUICreate("Consoles", 1020, 600, 0, 0, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SYSMENU, $WS_CAPTION, $WS_CLIPCHILDREN, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_SIZEBOX, $WS_CLIPSIBLINGS)) 
$hwnd00 = WinGetHandle("Consoles") 
DisableButton($GUI2, $SC_CLOSE) 

Ребенок окна (s) создается этот код:

Func StartServer($Type, $loc, $ID, $chosen, $Handle, $Name) 
    $ID = Run("java " & $chosen & " -Xms512M -XX:MaxPermSize=128M -jar " & '"' & $loc & "\" & $Type & '"', $loc, 5) 
    Sleep(300) 
    If Not ProcessWait($ID, 5) = 0 Then 
     WinSetTitle("C:\Windows\system32\java.exe", "", $Name) 
     WinSetTitle("C:\WINDOWS\SYSTEM32\java.exe", "", $Name) 
     $Handle = WinGetHandle($Name) 
     Sleep(100) 
     _WinAPI_SetWindowLong($Handle, $GWL_EXSTYLE, $WS_EX_MDICHILD) 
     _WinAPI_SetParent($Handle, $GUI2) 
     Sleep(100) 
    Else 
     MsgBox(-1, "ERROR", "Either the server file was not found or the server crashed because of and internal or a java error. Please check if the jar excists and look after java errors. The program will now exit.") 
     ControlSend("Bungee", "", $hwnd0, 'end' & '{ENTER}') 
     ControlSend("Server1", "", $hwnd1, "stop" & '{ENTER}') 
     ControlSend("Server2", "", $hwnd2, "stop" & '{ENTER}') 
     ControlSend("Server3", "", $hwnd3, "stop" & '{ENTER}') 
     ControlSend("Server4", "", $hwnd4, "stop" & '{ENTER}') 
     ControlSend("Server5", "", $hwnd5, "stop" & '{ENTER}') 
     Exit 
    EndIf 
    Sleep(500) 
EndFunc ;==>StartServer 

дочернего окна (ов) можно свободно перемещать. Если он приближается к границе родительского GUI, он начинает срываться или полностью исчезает.
Как я могу определить границу и не позволять дочерним окнам выходить наружу?

ответ

0

Как описано в другом вопросе here в stackOverflow, вы можете использовать _MouseTrap, чтобы это не происходило.

+0

Люди должны иметь возможность менять окна по своему желанию. Это только при касании дочерних окон есть какая-то проблема. Кроме того, это не решило проблему. – EpicKnarvik97

+0

Моя точка зрения заключалась в том, что при перемещении дочерних окон вы могли бы заманить в мышь в область, которой не было, чтобы закрыть границу родительского GUI. Извините за то, что я был таким общим в своем ответе, у меня не было времени, чтобы предоставить примерный код. – Samoth

+0

Проблема не в том, что мышь приближается к границе, но когда граница дочернего окна приближается к родительскому окну. – EpicKnarvik97

Смежные вопросы