Application C# WindowsAPI FlashWindowEx - Explication détaillée de la méthode de réalisation du flashage des fenêtres

黄舟
Libérer: 2017-03-11 13:27:49
original
3004 Les gens l'ont consulté


API Windows


En plus de coordonner l'exécution des applications, d'allouer de la mémoire et de gérer les ressources, le système d'exploitation multi-exploitation Windows est également un grand centre de services appelle divers services de ce centre de services (chaque service est une fonction), qui peuvent aider l'application à ouvrir des fenêtres, dessiner des graphiques, utiliser des périphériques, etc., car les objets servis par ces fonctions sont des applications (Application ), donc cela s'appelle Application Programming Interface, ou fonction API en abrégé. L'API WIN32 est l'interface de programmation d'applications de la plateforme Microsoft Windows 32 bits.

FlashWindowEx


Fonction  : Flasher la fenêtre spécifiée. Cela ne change pas l'état d'activation de la fenêtre.
Prototype de fonction : BOOL WINAPI FlashWindowEx(
 __in PFLASHWINFO pfwi
 );
Paramètres : pfwi est un pointeur vers la structure FLASHWINFO. .
Valeur de retour : renvoie l'état de la fenêtre spécifié avant d'appeler la fonction FlashWindowEx. Si le titre de la fenêtre était actif avant l'appel, la valeur de retour est différente de zéro.

Méthodes pour implémenter le scintillement des fenêtres


Importation d'API

        /// <summary>
        /// 闪烁窗口
        /// </summary>
        /// <param name="pwfi">窗口闪烁信息结构</param>
        /// <returns></returns>
        [DllImport("user32.dll")]        public static extern bool FlashWindowEx(ref FLASHWINFO pwfi);
Copier après la connexion

Définition de l'énumération de type Flash

        /// <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 //未激活时闪烁任务栏直到发送停止标志或者窗体被激活,停止后高亮
        }
Copier après la connexion

Définition de la structure FLASHWINFO

        /// <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;
        }
Copier après la connexion

Encapsulation par méthode de fenêtre Flash

        /// <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);
        }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!