Ändert das Parent-Fenster des angegebenen Child-Fensters
#include <WinAPISysWin.au3>
_WinAPI_SetParent ( $hWndChild, $hWndParent )
$hWndChild | Fensterhandle des Child-Fensters |
$hWndParent | Handle des neuen Parent-Fensters. Falls 0, ist das Desktop-Fenster das neue Parent-Fenster. |
Erfolg: | Ein Handle zum vorherigen übergeordneten Fenster |
Fehler: | 0. Es ist _WinAPI_GetLastError() aufzurufen um erweiterte Fehlerinformationen zu erhalten. |
Eine Anwendung kann die SetParent Funktion nutzen um das Parent-Fenster für Popup, Overlapped oder Child-
Fenster zu ändern oder zu setzen. Das neue Parent-Fenster und das Child-Fenster müssen zur gleichen Anwendung gehören.
Suche nach SetParent in der MSDN Bibliothek.
#include <GUIConstantsEx.au3>
#include <WinAPISysWin.au3>
#include <WindowsConstants.au3>
Local $hParent = WinGetHandle('[CLASS:Progman;TITLE:Program Manager]')
Local $hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 400, 400, 100, 100, -1, $WS_EX_TOOLWINDOW)
; Fenster auf dem Desktop anbringen (immer unten)
_WinAPI_SetParent($hForm, $hParent)
GUISetState(@SW_SHOWNOACTIVATE)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <WinAPI.au3>
$hGui = GUICreate("_WinAPI_SetParent", 320, 240, Default, Default, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_CLIPCHILDREN))
GUISetState(@SW_SHOW, $hGui)
$hPid = Run(@SystemDir & '\notepad.exe', "", @SW_HIDE)
WinWait("[CLASS:Notepad]")
$hChild = WinGetHandle("[CLASS:Notepad]")
_WinAPI_SetParent($hChild, $hGui)
_WinAPI_SetWindowLong($hChild, $GWL_STYLE, BitOR($WS_CAPTION, $WS_POPUP))
WinSetState($hChild, "", @SW_SHOW)
While GUIGetMsg() <> -3
Sleep(1)
WEnd