使用QQ聊天時,如果對方發出了信息QQ 圖標會閃動提示,雖然Windows API 沒有直接控制閃動效果的方法,但該效果在開發中可能會經常使用,下面代碼為一個閃動效果類:
////// Win32 API /// internal static class Win32 { ////// 窗口閃動 /// ///窗口句柄 ///是否為閃 ///成功返回0 [DllImport("user32.dll")] public static extern bool FlashWindow(IntPtr hwnd, bool bInvert); }
///通過FlashWindowHelper 類可以輕松的使任務欄圖標閃動起來:/// 窗口閃動的輔助類 /// public class FlashWindowHelper { Timer _timer; int _count = 0; int _maxTimes = 0; IntPtr _window; public void Flash(int times, double millliseconds, IntPtr window) { _maxTimes = times; _window = window; _timer = new Timer(); _timer.Interval = millliseconds; _timer.Elapsed += _timer_Elapsed; _timer.Start(); } void _timer_Elapsed(object sender, ElapsedEventArgs e) { if (++_count < _maxTimes) { Win32.FlashWindow(_window, (_count % 2) == 0); } else { _timer.Stop(); } } }
////// 通過FlashWindowHelper 類可以輕松的使任務欄圖標閃動起來: /// private void _btnFlash_Click(object sender, EventArgs e) { FlashWindowHelper helper = new FlashWindowHelper(); helper.Flash(10, 300, this.Handle); }