Setzt den Anzeigestatus des angegebenen Fensters
#include <WinAPISysWin.au3>
_WinAPI_ShowWindow ( $hWnd [, $iCmdShow = 5] )
$hWnd | Handle des Fensters |
$iCmdShow | [optional] Legt fest, wie das Fenster anzuzeigen ist: @SW_HIDE - Versteckt das Fenster und aktiviert ein anderes Fenster @SW_MAXIMIZE - Maximiert das angegebene Fenster @SW_MINIMIZE - Minimiert das angegebene Fenster und aktiviert das nächste Top-Level Fenster in der Z-Anordnung @SW_RESTORE - Aktiviert und zeigt das Fenster an @SW_SHOW - Aktiviert das Fenster und zeigt es in seiner aktuellen Größe und Position an @SW_SHOWDEFAULT - Setzt den Anzeigestatus basierend auf dem SW_ Flag, welcher in der STARTUPINFO Struktur festgelegt wurde @SW_SHOWMAXIMIZED - Aktiviert das Fenster und zeigt das Fenster maximiert an @SW_SHOWMINIMIZED - Aktiviert das Fenster und zeigt das Fenster minimiert an @SW_SHOWMINNOACTIVE - Zeigt das Fenster minimiert an @SW_SHOWNA - Zeigt das Fenster in seinem derzeitigen Status an @SW_SHOWNOACTIVATE - Zeigt ein Fenster in seiner zuletzt gezeigten Größe und Position an @SW_SHOWNORMAL - Aktiviert und zeigt das Fenster an |
Erfolg: | True |
Fehler: | False |
Suche nach ShowWindow in der MSDN Bibliothek.
;==============================================================================
; _WinAPI_ShowWindow.au3
;==============================================================================
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <ButtonConstants.au3>
#include <Constants.au3>
#include <WinAPI.au3>
Opt("MustDeclareVars", 1)
Global Enum $IDC_RED = 100, $IDC_GREEN, $IDC_BLUE
Global $aButton[3][2] = [["Rot", $IDC_RED],["Grün", $IDC_GREEN],["Blau", $IDC_BLUE]]
Global $hInstance
Global $nColor = 0x0000FFFF ; Gelb (BGR)
;==============================================================================
Exit Example()
;==============================================================================
Func Example()
Local $hwndMain, $hwndButton, $nWidth, $x
$hInstance = _WinAPI_GetModuleHandle(0)
; Das Hauptfenster erzeugen
$hwndMain = GUICreate( _
"_WinAPI_FillRect - Demo", _ ; Titel des Fensters
400, 300, -1, -1, _ ; Größe und Position des Fensters
BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPCHILDREN), _ ; Fensterstile
$WS_EX_WINDOWEDGE, _ ; Erweiterte Fensterstile
0) ; Handle des Parent-Fensters
$nWidth = _WinAPI_GetWindowWidth($hwndMain)
$x = ($nWidth / 7)
For $i = 0 To 2
; Drei einfache Schaltflächen erzeugen
$hwndButton = _WinAPI_CreateWindowEx( _
0, _ ; Erweiterte Fensterstile
"BUTTON", _ ; Name der Fensterklasse
$aButton[$i][0], _ ; Text/Titel des Fensters
BitOR($WS_TABSTOP, $WS_CHILD, $WS_VISIBLE, $BS_CENTER), _ ; Fensterstile
$x, 220, ($nWidth / 7), 25, _ ; Position und Größe des Fensters
$hwndMain, _ ; Handle des Parent-Fensters
$aButton[$i][1], _ ; Identifizierer des (Kind-)Fensters
$hInstance, _ ; Instanzhandle des Moduls
0) ; Anwendungsdefinierter Wert
$x += 2 * ($nWidth / 7)
Next
; Fensternachrichten registrieren
GUIRegisterMsg($WM_COMMAND, "MyWM_COMMAND")
GUIRegisterMsg($WM_ERASEBKGND, "MyWM_ERASEBKGND")
; Das Hauptfenster anzeigen
_WinAPI_ShowWindow($hwndMain, @SW_SHOW)
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
EndFunc ;==>Example
Func MyWM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
#forceref $iMsg, $lParam
Local $nOldColor = $nColor
Switch (_WinAPI_LoWord($wParam))
Case $IDC_RED
; Farbwert (BGR) in globale Variable ablegen
$nColor = 0x000000FF
Case $IDC_GREEN
; Farbwert (BGR) in globale Variable ablegen
$nColor = 0x0000FF00
Case $IDC_BLUE
; Farbwert (BGR) in globale Variable ablegen
$nColor = 0x00FF0000
EndSwitch
If $nOldColor <> $nColor Then
; Neuzeichnen des Fensters erzwingen
_WinAPI_InvalidateRect($hwnd, 0, True)
_WinAPI_UpdateWindow($hwnd)
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>MyWM_COMMAND
Func MyWM_ERASEBKGND($hWnd, $iMsg, $wParam, $lParam)
#forceref $hWnd, $iMsg
Local $hDC = $wParam, $hBrush, $hBrushOld, $rcClient
; Anwendungsbereich ermitteln
$rcClient = _WinAPI_GetClientRect($hwnd)
; Füllmuster erzeugen
$hBrush = _WinAPI_CreateSolidBrush($nColor)
; Füllmuster in den Gerätekontext einsetzen
$hBrushOld = _WinAPI_SelectObject($hDC, $hBrush)
; Anwendungsbereich mit dem Füllmuster zeichnen
_WinAPI_FillRect($hDC, DllStructGetPtr($rcClient), $hBrush)
; Das ursprüngliche Füllmuster wieder in den Gerätekontext einsetzen
_WinAPI_SelectObject($hDC, $hBrushOld)
; Unser selbsterzeugtes Füllmuster wieder
; löschen, wenn wir es nicht mehr brauchen
_WinAPI_DeleteObject($hBrush)
Return 1
EndFunc ;==>MyWM_ERASEBKGND
;================================ End of File =================================