Beschreibung: Mit der Funktion kann damit einige Fenstereffekte erzeugen. U.a. Einfaden, Ausfaden, Schieben, Rollen... Falls der Effekt nicht mit der Windows-Version kompatibel ist, oder ein anderer Fehler auftritt, wird die Form trotzdem ein-/ausgeblendet. Genauere Beschreibung zur Handhabung im Quellcode.
Funktion: Visual Basic: [code]#Region "FensAnim"
' zunächst die benötigten API-Deklarationen Private Declare Function AnimateWindow Lib "user32" ( _ ByVal hwnd As Integer, _ ByVal Time As Integer, _ ByVal Flags As Integer) As Integer
Enum FensAnimArt As Integer EINBLENDEN AUSBLENDEN End Enum
Enum FensAnimEffekt As Integer DIMMEN ROLLEN_SEITE ROLLEN_MITTE SCHIEBEN End Enum
Enum FensAnimRichtung As Integer N NO O SO S SW W NW End Enum
Private Sub FensAnim( _ ByVal Fenster As Form, _ ByVal Art As FensAnimArt, _ ByVal Effekt As FensAnimEffekt, _ ByVal Richtung As FensAnimRichtung, _ ByVal Dauer_ms As Integer)
' Fehlerbehandlung aktivieren Try Dim Flags As Integer = 0
' Flag Ein/Ausblenden Select Case Art Case FensAnimArt.EINBLENDEN Flags += AW_ACTIVATE Case FensAnimArt.AUSBLENDEN Flags += AW_HIDE End Select
' Effect-Flag addieren Select Case Effekt Case FensAnimEffekt.ROLLEN_SEITE Flags += 0 Case FensAnimEffekt.ROLLEN_MITTE Flags += AW_CENTER Case FensAnimEffekt.SCHIEBEN Flags += AW_SLIDE Case FensAnimEffekt.DIMMEN Flags += AW_BLEND End Select
' Richtungs-Flags addieren Select Case Richtung Case FensAnimRichtung.N Flags += AW_VER_NEGATIVE Case FensAnimRichtung.NO Flags += AW_VER_NEGATIVE + AW_HOR_POSITIVE Case FensAnimRichtung.O Flags += AW_HOR_POSITIVE Case FensAnimRichtung.SO Flags += AW_VER_POSITIVE + AW_HOR_POSITIVE Case FensAnimRichtung.S Flags += AW_VER_POSITIVE Case FensAnimRichtung.SW Flags += AW_VER_POSITIVE + AW_HOR_NEGATIVE Case FensAnimRichtung.W Flags += AW_HOR_NEGATIVE Case FensAnimRichtung.NW Flags += AW_VER_NEGATIVE + AW_HOR_NEGATIVE End Select
' Animation ausführen ' (Programm/Thread ist solange pausiert) AnimateWindow(Fenster.Handle.ToInt32, Dauer_ms, Flags) Catch : End Try
' sicherheits Fenster anzeigen/verstecken ' (falls Animation fehlschlägt!) Select Case Art Case FensAnimArt.EINBLENDEN Fenster.Show() Case FensAnimArt.AUSBLENDEN Fenster.Hide() End Select
' sicherheitshalber Neuzeichnen ' (um Grafikfehler zu vermeiden) Fenster.Refresh() End Sub
#End Region[/code]
Beschreibung der Parameter: Fenster: die Form die animiert werden soll Art: EINBLENDEN: Fenster wird eingeblendet (bei sichtbaren Fenstern geschieht nichts) AUSBLENDEN: Fenster wird ausgeblendet (bei unsichtbaren Fenstern geschieht nichts)Effekt: (probier' sie einfach aus) DIMMEN: Fenster Ein-/Ausdimmen (Richtung wird ignoriert) ROLLEN_SEITE: Fenster wird von einer Seite/Ecke aus sichtbar/unsichtbar (Richtung -> in diese Richtung wird gerollt) ROLLEM_MITTE: Fenster wird von der Mitte aus sichtbar/zur Mitte hin unsichtbar (Richtung wird ignoriert) SCHIEBEN: Fenster wird von/zu einer Seite/Ecke eingeschoben/ausgeschoben (Richtung -> in diese Richtung wird geschoben)Richtung: siehe Effekte Dauer_ms: Dauer der gesamten Animation in Millisekunden Beispiel für den Aufruf:
Visual Basic: [code]Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load
' Einblenden FensAnim(Me, EINBLENDEN, SCHIEBEN, W, 500) End Sub
Private Sub Form1_Closed(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Closed
' Ausblenden FensAnim(Me, AUSBLENDEN, DIMMEN, W, 500) End Sub[/code]