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
子窗口(S )可以自由移動。如果它靠近父GUI的邊界,它會開始出現毛刺或完全消失。
如何定義邊框並防止兒童窗戶外出?
人們應該可以隨意更換窗戶。只有在觸摸兒童窗戶時纔會出現問題。而且,它沒有解決問題。 – EpicKnarvik97
我的觀點是,在移動子窗口的同時,您可以將鼠標捕捉到不會出現的區域,從而關閉父GUI的邊界。對不起,在我的回答中如此普遍,我沒有時間提供一些示例代碼。 – Samoth
問題不在鼠標靠近邊界時,而是在子窗口的邊框靠近父窗口時。 – EpicKnarvik97