Titlebar lampeggiante

martedì 07 novembre 2006 - 21.46

JohnAsh Profilo | Junior Member

Ciao a tutti,

ho la necessità di far lampeggiare la titlebar di una form che apro dalla mia applicazione, per intenderci il classico lampeggio arancione delle finestre di MSN quando arriva un nuovo messaggio. Cercando un pò su google ho trovato una possibile soluzione, l'utilizzo dell'API FlashWindow() ma non riesco ad implementarla correttamente. Sono convinto che però ci sia sicuramente un altro modo per ottenre lo stesso effetto tramite codice gestito. Qualcuno ha mai avuto la mia stessa esigenza? Come è possibile risolverla?

Utilizzo VC++.

Grazie in anticipo,
saluti!

Brainkiller Profilo | Guru

>l'utilizzo dell'API FlashWindow()

Ed è la soluzione corretta.


> ottenre lo stesso effetto tramite codice gestito. Qualcuno
>ha mai avuto la mia stessa esigenza? Come è possibile risolverla?
>Utilizzo VC++.

Non capisco perchè prima parli di codice gestito e poi utilizzi VC++ che è risaputamente non gestito

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

JohnAsh Profilo | Junior Member

Grazie per la risposta BrainKiller. Io uso Visual C++ e per codice gestito intendevo "managed code" .. mi sembra che con Visual C++ si compili appunto condice managed .. forse ignoro che i due termini indicano cose diverse In ogni caso, dopo la tua conferma che FlashWindow() era l'unica soluzione al problema, dopo diversi tentativi sono riuscito ad importare la DLL user32 nella mia applicazione. Se qualcuno si dovesse trovare con la mia stessa esigenza, a me è bastato aggiungere l'istruzione "using System::Runtime::InteropServices;" e:

[DllImport("user32.dll")]
extern int FlashWindow(int hwnd, int bInvert);

che ho inserito subito dopo tutti gli using. Dopodicchè basta richiamare normalmente l'API:

FlashWindow(this->Handle.ToInt32(), 1);

Passando 1 come secondo parametro, la titlebar del form lampeggierà alternando il colore di defualt (blu) all'arancione. Mentre passando 0 verrà ripristinato il colore di default.

Saluti!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5