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.309 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. |
Neu! sevPopUp 2.0 Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |