>  기사  >  백엔드 개발  >  C# WindowsAPI 응용 프로그램 FlashWindowEx - 창 깜박임을 구현하는 방법에 대한 자세한 설명

C# WindowsAPI 응용 프로그램 FlashWindowEx - 창 깜박임을 구현하는 방법에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-11 13:27:493002검색


Windows API


응용 프로그램 실행 조정, 메모리 할당, 리소스 관리 외에도 다중 운영 체제인 Windows도 대규모입니다. 서비스 센터는 이 서비스 센터의 다양한 서비스(각 서비스는 함수임)를 호출합니다. 이는 응용 프로그램이 창을 열고, 그래픽을 그리며, 주변 장치를 사용하는 등의 작업을 도울 수 있습니다. 왜냐하면 이러한 기능에 의해 제공되는 객체는 응용 프로그램(응용 프로그램)이기 때문입니다. 이를 응용 프로그래밍 인터페이스(Application Programing Interface), 줄여서 API 함수라고 합니다. WIN32 API는 Microsoft Windows 32비트 플랫폼의 애플리케이션 프로그래밍 인터페이스입니다.

FlashWindowEx


함수: 지정된 창을 플래시합니다. 창의 활성화 상태는 변경되지 않습니다.
함수 프로토타입: BOOL WINAPI FlashWindowEx(
 __in PFLASHWINFO pfwi
 );
매개변수: pfwi는 FLASHWINFO 구조에 대한 포인터입니다. .
반환 값: FlashWindowEx 함수를 호출하기 전 지정된 창 상태를 반환합니다. 호출 전에 창 제목이 활성화된 경우 반환 값은 0이 아닙니다.

창 깜박임 구현 방법


API 가져오기

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

플래시 유형 열거 정의

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

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;
        }

깜박이는 창 방식 캡슐화

        /// <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);
        }

위 내용은 C# WindowsAPI 응용 프로그램 FlashWindowEx - 창 깜박임을 구현하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.