Mit dieser Funktion kann man ein Fenster blinken lassen um z.B. den Benutzer auf neue aktivität im Programm aufmerksam zu machen.
Man kann entweder das Fenster nur in der Taskleiste blinken lassen oder nur die Titelleiste vom Fenster oder beides blinken lassen.
Private Declare Auto Function FlashWindowEx Lib "user32" ( _
ByRef FWI As FLASHWINFO) _
As Boolean
''' <summary>Den Blinkvorgang beenden und zum Originalzustand zurücksetzen</summary>
Private Const FLASHW_STOP = 0
''' <summary>Die Titelleiste des Fensters blinken lassen</summary>
Private Const FLASHW_CAPTION = &H1
''' <summary>Den Taskbar-Button des Fensters blinken lassen</summary>
Private Const FLASHW_TRAY = &H2
''' <summary>FLASHW_CAPTION und FLASHW_TRAY werden kombiniert</summary>
Private Const FLASHW_ALL = (FLASHW_CAPTION Or FLASHW_TRAY)
Private Structure FLASHWINFO
Dim cbSize As UInt16
Dim hwnd As IntPtr
Dim dwFlags As UInt32
Dim uCount As UInt16
Dim dwTimeout As UInt32
End Structure
''' <summary>
''' Mit dieser Funktion kann man ein Fenster blinken lassen um z.B. den Benutzer auf neue aktivität im Programm aufmerksam zu machen.
''' </summary>
''' <param name="Handle">Gibt den Fensterhandle an</param>
''' <param name="FlashMode">Gibt den Blink-Modus an (Taskleiste, Titelleiste oder beide)</param>
''' <param name="FlashCount">Gibt die Anzahl der Blink-Wiederholungen an</param>
''' <param name="Speed">Gibt die Blinkgeschwindigkeit in Millisekunden an. Wenn der Wert 0 ist wird die Standardgeschwindigkeit genommen</param>
Public Sub FlashWindow(ByVal Handle As Integer, ByVal FlashMode As Integer, ByVal FlashCount As Integer, Optional ByVal Speed As Integer = 0)
Dim FlashInfo As New FLASHWINFO
FlashInfo.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(FlashInfo)
FlashInfo.dwFlags = FlashMode
FlashInfo.dwTimeout = Speed
FlashInfo.hwnd = Handle
FlashInfo.uCount = FlashCount
FlashWindowEx(FlashInfo)
End Sub
Kommentare zum Snippet