meta dati per questa pagina
  •  

Far lampeggiare la barra del titolo di una form

Probabilmente vi sarete chiesti come si possa far evidenziare sulla barra delle applicazioni un nostro programma quando si scatena un certo evento.

Bhe' con questo metodo piu' che far evidenziare l'applicazione possiamo farla "lampeggiare".

Per farlo dobbiamo inserire la seguente dichiarazione

Private Declare Function FlashWindow Lib "user32" (ByVal hWnd As Long, ByVal bInvert As Long) As Long

che, noto l'handle (hWnd) della finestra permette invertire (bInvert) lo stato.

Se il parametro bInvert viene impostato a 0 (falso) la finestra resta nel proprio stato originale, se invece viene impostato a vero (<> 0) la finestra cambia stato da Attiva a Inattiva.

A questo punto, basta usare opportunamente la chiamata a tale funzione per ottenere il lampeggio.

Ad esempio con questa e' possibile quante volte (fTime) far invertire stato e la durata (fmSec), in millisecondi, dell'inversione.

Public Sub flashTitleBar(ByRef fForm As Variant, Optional ByRef fTime As Long = 1, Optional ByRef fmSec As Long = 500)
    Dim responso As Long
    Dim volte As Long
    Dim ora As Double
 
    For volte = 1 To fTime
        responso = FlashWindow(fForm.hWnd, 1)
        ora = Timer
        Do
            DoEvents
        Loop Until Timer - ora >= fmSec / 1000
    Next volte
End Sub
Potresti lasciare un commento se ti fossi autenticato.