Ich habe zufällig die API-Funktion AnimateWindow entdeckt und sofort eine Zugriffs-Prozedur geschrieben. Mann 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. #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 Private Const AW_ACTIVATE = &H20000 Private Const AW_BLEND = &H80000 Private Const AW_CENTER = &H10 Private Const AW_SLIDE = &H40000 Private Const AW_HIDE = &H10000 Private Const AW_HOR_POSITIVE = &H1 Private Const AW_HOR_NEGATIVE = &H2 Private Const AW_VER_POSITIVE = &H4 Private Const AW_VER_NEGATIVE = &H8 Private Const WM_PAINT = &HF 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 Beschreibung der Parameter: Fenster: die Form die animiert werden soll Art: Effekt: (probier' sie einfach aus) Richtung: siehe Effekte Dauer_ms: Dauer der gesamten Animation in Millisekunden Beispiel für den Aufruf: 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 Dieser Tipp wurde bereits 24.590 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats Dezemeber 2024 Roland Wutzke MultiSort im ListView-Control Dieses Beispiel zeigt, wie sich verschiedene Sortierfunktionen für ein ListView Control realisieren lassen. sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |