C# WindowsAPI-Anwendung FlashWindowEx – Detaillierte Erläuterung der Methode zur Realisierung des Fenster-Flashens

黄舟
Freigeben: 2017-03-11 13:27:49
Original
3006 Leute haben es durchsucht


Windows-API


Neben der Koordination der Ausführung von Anwendungen, der Zuweisung von Speicher und der Verwaltung von Ressourcen ist das Multi-Betriebssystem Windows auch ein großes The Das Servicecenter ruft verschiedene Dienste dieses Servicecenters auf (jeder Dienst ist eine Funktion), die der Anwendung dabei helfen können, Fenster zu öffnen, Grafiken zu zeichnen, Peripheriegeräte zu verwenden usw., da die von diesen Funktionen bedienten Objekte Anwendungen (Anwendung) sind Sie wird Application Programming Interface oder kurz API-Funktion genannt. Die WIN32-API ist die Anwendungsprogrammierschnittstelle der Microsoft Windows 32-Bit-Plattform.

FlashWindowEx


Funktion : Flashen des angegebenen Fensters. Der Aktivierungsstatus des Fensters wird dadurch nicht geändert.
Funktionsprototyp: BOOL WINAPI FlashWindowEx(
 __in PFLASHWINFO pfwi
 );
Parameter: pfwi ist ein Zeiger auf die FLASHWINFO-Struktur. .
Rückgabewert: Gibt den angegebenen Fensterstatus vor dem Aufruf der FlashWindowEx-Funktion zurück. Wenn der Fenstertitel vor dem Aufruf aktiv war, ist der Rückgabewert ungleich Null.

Methoden zum Implementieren von Fensterflimmern


API-Import

        /// <summary>
        /// 闪烁窗口
        /// </summary>
        /// <param name="pwfi">窗口闪烁信息结构</param>
        /// <returns></returns>
        [DllImport("user32.dll")]        public static extern bool FlashWindowEx(ref FLASHWINFO pwfi);
Nach dem Login kopieren

Flash-Typ-Aufzählungsdefinition

        /// <summary>
        /// 闪烁类型
        /// </summary>
        public enum flashType : uint
        {
            FLASHW_STOP = 0, //停止闪烁
            FALSHW_CAPTION = 1, //只闪烁标题
            FLASHW_TRAY = 2, //只闪烁任务栏
            FLASHW_ALL = 3, //标题和任务栏同时闪烁
            FLASHW_PARAM1 = 4,
            FLASHW_PARAM2 = 12,
            FLASHW_TIMER = FLASHW_TRAY | FLASHW_PARAM1, //无条件闪烁任务栏直到发送停止标志或者窗口被激活,如果未激活,停止时高亮
            FLASHW_TIMERNOFG = FLASHW_TRAY | FLASHW_PARAM2 //未激活时闪烁任务栏直到发送停止标志或者窗体被激活,停止后高亮
        }
Nach dem Login kopieren

FLASHWINFO-Strukturdefinition

        /// <summary>
        /// 包含系统应在指定时间内闪烁窗口次数和闪烁状态的信息
        /// </summary>
        public struct FLASHWINFO
        {            /// <summary>
            /// 结构大小
            /// </summary>
            public uint cbSize;            /// <summary>
            /// 要闪烁或停止的窗口句柄
            /// </summary>
            public IntPtr hwnd;            /// <summary>
            /// 闪烁的类型
            /// </summary>
            public uint dwFlags;            /// <summary>
            /// 闪烁窗口的次数
            /// </summary>
            public uint uCount;            /// <summary>
            /// 窗口闪烁的频度,毫秒为单位;若该值为0,则为默认图标的闪烁频度
            /// </summary>
            public uint dwTimeout;
        }
Nach dem Login kopieren

Kapselung der Flash-Fenstermethode

        /// <summary>
        /// 闪烁窗口
        /// </summary>
        /// <param name="hWnd">窗口句柄</param>
        /// <param name="type">闪烁类型</param>
        /// <returns></returns>
        public static bool FlashWindowEx(IntPtr hWnd, flashType type)
        {
            FLASHWINFO fInfo = new FLASHWINFO();
            fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo));
            fInfo.hwnd = hWnd;//要闪烁的窗口的句柄,该窗口可以是打开的或最小化的
            fInfo.dwFlags = (uint)type;//闪烁的类型
            fInfo.uCount = UInt32.MaxValue;//闪烁窗口的次数
            fInfo.dwTimeout = 0; //窗口闪烁的频度,毫秒为单位;若该值为0,则为默认图标的闪烁频度
            return FlashWindowEx(ref fInfo);
        }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonC# WindowsAPI-Anwendung FlashWindowEx – Detaillierte Erläuterung der Methode zur Realisierung des Fenster-Flashens. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage