GUICreateBlend(): Einblendeeffekt einer GUI

  • Hallo!

    Habe diese UDF für ein Skript von mir erstellt. Sie erstellt eine GUI, die langsam (oder auch nicht ;)) eingeblendet wird.

    Funktion

    Spoiler anzeigen
    [autoit]

    ;====================================================================
    ; Funktionsname: _GUICreateBlend()
    ; Funktion: Erstellt eine GUI die eingeblendet wird
    ; Parameter: $title: Titel der GUI
    ; $width/$height/$left/$top: Größenangaben der GUI
    ; Autor: fabs
    ;====================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _GUICreateBlend($title, $width, $height, $left, $top)
    $gui = GUICreate($title, $width, $height, $left, $top, $WS_EX_LAYERED)
    _GUICreateBlendCtrls()
    GUISetState(@SW_HIDE)
    WinSetTrans($title, "", 10)
    GUISetState(@SW_SHOW)

    For $trans = 10 To 190 Step +5
    WinSetTrans($title, "", $trans)
    Sleep(15)
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===========================================================
    ; Hier die Elemente wie Labels, Slider, Buttons etc
    ; einfügen, damit diese auch eingeblendet werden.
    ;===========================================================
    Func _GUICreateBlendCtrls()
    GUICtrlCreateX(...)
    Return
    EndFunc

    [/autoit]

    Beispiel

    Spoiler anzeigen

    Beispiel

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    _GUICreateBlend("GUI", 526, 354, 193, 125)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ;====================================================================
    ; Funktionsname: _GUICreateBlend()
    ; Funktion: Erstellt eine GUI die eingeblendet wird
    ; Parameter: $title: Titel der GUI
    ; $width/$height/$left/$top: Größenangaben der GUI
    ; Autor: fabs
    ;====================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _GUICreateBlend($title, $width, $height, $left, $top)
    $gui = GUICreate($title, $width, $height, $left, $top, $WS_EX_LAYERED)
    _GUICreateBlendCtrls()
    GUISetState(@SW_HIDE)
    WinSetTrans($title, "", 10)
    GUISetState(@SW_SHOW)

    For $trans = 10 To 190 Step +5
    WinSetTrans($title, "", $trans)
    Sleep(15)
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===========================================================
    ; Hier die Elemente wie Labels, Slider, Buttons etc
    ; einfügen, damit diese auch eingeblendet werden.
    ;===========================================================
    Func _GUICreateBlendCtrls()
    GUICtrlCreateLabel("Eingeblendet", 215, 160, 65, 17)
    Return
    EndFunc

    [/autoit]
  • Hey, cooles Script, aber warum machst du die Funktion nicht so, dass sie das GUIFenster komplett einblendet:

    Spoiler anzeigen
    [autoit]


    ;====================================================================
    ; Funktionsname: _GUICreateBlend()
    ; Funktion: Erstellt eine GUI die eingeblendet wird
    ; Parameter: $title: Titel der GUI
    ; $width/$height/$left/$top: Größenangaben der GUI
    ; Autor: fabs
    ;====================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _GUICreateBlend($title, $width, $height, $left, $top)
    $gui = GUICreate($title, $width, $height, $left, $top, $WS_EX_LAYERED)
    _GUICreateBlendCtrls()
    GUISetState(@SW_HIDE)
    WinSetTrans($title, "", 10)
    GUISetState(@SW_SHOW)

    For $trans = 10 To 255 Step +5 ; Hier bis 255 dann wird es ganz eingeblendet
    WinSetTrans($title, "", $trans)
    Sleep(15)
    Next
    EndFunc

    [/autoit]
  • Kann man ja noch ändern, aber ich wollte bei meinem Skript halt noch eine gewisse Transparenz nach dem Effekt haben ;)