Bild "einfliegen" lassen

  • Hallo zusammen...

    Besteht die Möglichkeit, ein Bild langsam einfliegen, bzw. es langsam (z.B. von oben nach unten) aufbauen zu lassen???
    Oder gibts gar ne UDF dazu?

  • Wie genau soll das aussehen? Reicht das?

    Spoiler anzeigen
    [autoit]

    Global Const $AW_FADE_IN = 0x00080000 ;fade-in
    Global Const $AW_FADE_OUT = 0x00090000;fade-out
    Global Const $AW_SLIDE_IN_LEFT = 0x00040001 ;slide in from left
    Global Const $AW_SLIDE_OUT_LEFT = 0x00050002 ;slide out to left
    Global Const $AW_SLIDE_IN_RIGHT = 0x00040002 ;slide in from right
    Global Const $AW_SLIDE_OUT_RIGHT = 0x00050001 ;slide out to right
    Global Const $AW_SLIDE_IN_TOP = 0x00040004 ;slide-in from top
    Global Const $AW_SLIDE_OUT_TOP = 0x00050008 ;slide-out to top
    Global Const $AW_SLIDE_IN_BOTTOM = 0x00040008 ;slide-in from bottom
    Global Const $AW_SLIDE_OUT_BOTTOM = 0x00050004 ;slide-out to bottom
    Global Const $AW_DIAG_SLIDE_IN_TOPLEFT = 0x00040005 ;diag slide-in from Top-left
    Global Const $AW_DIAG_SLIDE_OUT_TOPLEFT = 0x0005000a ;diag slide-out to Top-left
    Global Const $AW_DIAG_SLIDE_IN_TOPRIGHT = 0x00040006 ;diag slide-in from Top-Right
    Global Const $AW_DIAG_SLIDE_OUT_TOPRIGHT = 0x00050009 ;diag slide-out to Top-Right
    Global Const $AW_DIAG_SLIDE_IN_BOTTOMLEFT = 0x00040009 ;diag slide-in from Bottom-left
    Global Const $AW_DIAG_SLIDE_OUT_BOTTOMLEFT = 0x00050006 ;diag slide-out to Bottom-left
    Global Const $AW_DIAG_SLIDE_IN_BOTTOMRIGHT = 0x0004000a ;diag slide-in from Bottom-right
    Global Const $AW_DIAG_SLIDE_OUT_BOTTOMRIGHT = 0x00050005 ;diag slide-out to Bottom-right
    Global Const $AW_EXPLODE = 0x00040010 ;explode
    Global Const $AW_IMPLODE = 0x00050010 ;implode

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

    Func _WinAnimate($v_gui, $i_mode, $i_duration = 1000)
    DllCall("user32.dll", "int", "AnimateWindow", "hwnd", WinGetHandle($v_gui), "int", $i_duration, "long", $i_mode)
    Local $ai_gle = DllCall('kernel32.dll', 'int', 'GetLastError')
    If $ai_gle[0] <> 0 Then
    SetError(1)
    Return 0
    EndIf
    Return 1
    EndFunc ;==>_WinAnimate

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

    #include <WindowsConstants.au3>

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

    Global $hGui = GUICreate('Test Slide-Show', @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
    GUICtrlCreatePic(@DocumentsCommonDir & '\Eigene Bilder\Beispielbilder\Winter.jpg', 0, 0, @DesktopWidth, @DesktopHeight, 0)

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

    _WinAnimate($hGui, $AW_SLIDE_IN_BOTTOM, 3000)
    GUISetState()

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

    Do
    Until GUIGetMsg() = -3

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Gleich noch eine Frage hinterher....

    Mit dem Scirpt von funkey ist es möglich das ganze Fenster "einfliegen" zu lassen...

    Jetzt habe ich ein fixes Fenster.
    Bei Programmstart wird im Fenster ein Bild mit geladen....

    Dieses Bild erneuert sich alle 30 Sekunden.

    Beim erneuern wird das alte Bild gelöscht und das neue mit GUICtrlcreatepic wieder eingefügt.
    Um den Übergang nicht "zu hart" zu machen, möchte ich nun das Bild irgendwie "animiert" einfügen lassen (durch z.B. einfliegen von oben, Transparenzänderung, ....)

    Gibts hierfür auch eine Funktion???

    Einmal editiert, zuletzt von noctis (22. April 2009 um 20:37)