Ändert die Größe, Position und Z-Order eines Child-, Popup- oder Top-Level-Fensters
#include <WinAPISysWin.au3>
_WinAPI_SetWindowPos ( $hWnd, $hAfter, $iX, $iY, $iCX, $iCY, $iFlags )
$hWnd | Handle des Fensters |
$hAfter | Identifiziert das Fenster, welches in die Fenster-Z-Anordnung eingefügt werden soll. Dieser Parameter muss ein Fensterhandle oder einer der folgenden Werte sein: $HWND_BOTTOM - Platziert das Fenster an das Ende der Z-Anordnung $HWND_NOTOPMOST - Platziert das Fenster über allen oberen (topmost) Fenstern $HWND_TOP - Platziert das Fenster an den Anfang der Z-Anordnung $HWND_TOPMOST - Platziert das Fenster über allen nicht-oberen (non-topmost) Fenstern |
$iX | Legt die neue Position der linken Seite des Fensters fest |
$iY | Legt die neue Position der oberen Seite des Fensters fest |
$iCX | Legt die neue Breite des Fensters fest, in Pixel |
$iCY | Legt die neue Höhe des Fensters fest, in Pixel |
$iFlags | Legt die Fenstergrößen und -positionierung fest: $SWP_DRAWFRAME - Zeichnet einen Rahmen um das Fenster $SWP_FRAMECHANGED - Sendet eine $WM_NCCALCSIZE Nachricht an das Fenster, auch wenn die Fenstergröße sich nicht geändert hat $SWP_HIDEWINDOW - Versteckt das Fenster $SWP_NOACTIVATE - Das Fenster wird nicht aktiviert $SWP_NOCOPYBITS - Verwirft den gesamten Inhalt des Anwendungsbereichs des Fensters $SWP_NOMOVE - Behält die aktuelle Position des Fensters bei $SWP_NOOWNERZORDER - Ändert nicht die Position des Owner-Fensters in der Z-Anordnung $SWP_NOREDRAW - Änderungen im Fenster werden nicht neu gezeichnet $SWP_NOREPOSITION - Gleichbedeutend mit dem $SWP_NOOWNERZORDER Flag $SWP_NOSENDCHANGING - Verhindert, dass das Fenster die Nachricht $WM_WINDOWPOSCHANGING erhält $SWP_NOSIZE - Behält die aktuelle Größe des Fensters bei $SWP_NOZORDER - Behält die aktuelle Z-Anordnung bei $SWP_SHOWWINDOW - Zeigt das Fenster auf dem Bildschirm an |
Erfolg: | True |
Fehler: | False. Es ist _WinAPI_GetLastError() aufzurufen um erweiterte Fehlerinformationen zu erhalten |
Oben stehende Konstanten benötigen #include <AutoItConstants.au3>
Suche nach SetWindowPos in der MSDN Bibliothek.
#include <MsgBoxConstants.au3>
#include <WinAPISysWin.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
; Assign a Local variable the handle of the NotePad window
Local $hWnd = WinGetHandle("[CLASS:Notepad]")
; If the window does not exists, display a message and return False.
If @error Then
MsgBox($MB_SYSTEMMODAL, "", "Notepad window not found.")
Return False
EndIf
; Assign a Local variable the style of the Notepad window.
Local $iStyle = _WinAPI_GetWindowLong($hWnd, $GWL_STYLE)
; Remove from the window style the MAXIMIZEBOX, MINIMIZEBOX and SIZEBOX styles.
$iStyle = BitXOR($iStyle, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_SIZEBOX)
; Set the style of the window.
_WinAPI_SetWindowLong($hWnd, $GWL_STYLE, $iStyle)
; Apply the style
_WinAPI_SetWindowPos($hWnd, $HWND_TOP, 0, 0, 0, 0, BitOR($SWP_FRAMECHANGED, $SWP_NOMOVE, $SWP_NOSIZE))
EndFunc ;==>Example
#include <GUIConstantsEx.au3>
#include <Constants.au3>
#include <WinAPI.au3>
Opt("GUIOnEventMode", 1) ; 0=ausgeschaltet, 1=OnEvent Modus aktiviert
$gui = GUICreate("Test", 100, 200, 300, 300)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
GUISetState()
Sleep(1000)
_WinAPI_SetWindowPos($gui, 0, 10, 20, 500, 500, $SWP_SHOWWINDOW)
While 1
Sleep(10)
WEnd
Func _exit()
Exit
EndFunc ;==>_exit