Справочник по C#

    Исходники по языку программирования CSharp

    Анимация Windows Form: Справочник по C#

    /
    /
    /
    117 Views


          Для создания анимации в Windows Form, в Microsoft Windows присутствует библиотека «user32.dll» с функцией AnimateWindow. Данная функция дает возможность производить специальные эффекты при показе или сокрытии окон. Имеются четыре типа мультипликации: ролик, слайд, свертывание или развертывание и плавное альфа-перетекание.

          User32.dll – реализует Windows User API. Позволяет работать со стандартными элементами пользовательского интерфейса Windows: рабочий стол, окна, меню и так далее. Позволяет реализовывать программам, графический пользовательский интерфейс Windows. Создавать и управлять окнами Windows, обрабатывать системные сообщения, команды с устройств ввода (клавиатуры, мыши и т.д.).

          Рассмотрим пример плавного проявления формы и сворачивания. Создайте проект Windows Form в Microsoft Visual Studio. В режима конструктора формы, сделайте двойной клик левой клавишей мыши, по ее любой части. Вы перейдете в автоматически созданный метод «Form1_Load». Добавьте в него приведенный ниже листинг.

    AnimateWindow(this.Handle, 1000,
    AnimateWindowFlags.AW_BLEND |
    AnimateWindowFlags.AW_VER_POSITIVE);

          Перейдите обратно в конструктор формы и сделайте клик правой клавишей мыши по любой области формы. Из появившегося контекстного меню, выберете пункт свойства. В открывшейся вкладке «Свойства», в верхней части найдите значок с молнией – события формы. Найдите событие «Form1_FormClosing». Данное событие срабатывает при закрытии формы. Добавьте в данный метод приведенный ниже листинг.

    AnimateWindow(this.Handle, 1000, AnimateWindowFlags.AW_BLEND | AnimateWindowFlags.AW_HIDE);

    Добавим и рассмотрим структуру функции AnimateWindow.

    [System.Runtime.InteropServices.DllImport("user32.dll")]
    static extern bool AnimateWindow(IntPtr hWnd, int time, AnimateWindowFlags flags);

    Параметры данной функции:

    • hWnd – идентификатор окна (например, Form1.hwnd).
    • time – продолжительность эффект в миллисекундах. 1 секунда = 1000 миллисекунд.
    • flags – эффект.

    Параметр AnimateWindowFlags может иметь одно или комплекс следующих значений:

    ПараметрЗначениеописание
    AW_ACTIVATE0x00020000Активирует окно. Нельзя использовать с AW_HIDE.
    AW_BLEND0x00080000Применяет эффект Alpha-blended к окнам верхнего уровня.
    AW_CENTER0x00000010Эффект – прямоугольник наружу, или внутрь, в зависимости от наличия значения AW_HIDE.
    AW_HIDE0x00010000Скрывает окно. Если значение не указано, то окно будет появляться.
    AW_HOR_NEGATIVE0x00000002Анимирует окно справа налево. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
    AW_HOR_POSITIVE0x00000001Анимирует окно слева направо. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
    AW_SLIDE0x00040000Эффект скольжения. Не работает при наличии значения AW_CENTER.
    AW_VER_NEGATIVE0x00000008Анимирует окно снизу вверх. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
    AW_VER_POSITIVE0x00000004Анимирует окно сверху вниз. Этот флажок может быть использованы с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.

    Добавьте в листинг главной формы комплекс значений AnimateWindowFlags и саму функцию.

    [Flags]
    enum AnimateWindowFlags
    {
    AW_HOR_POSITIVE = 0x00000001,
    AW_HOR_NEGATIVE = 0x00000002,
    AW_VER_POSITIVE = 0x00000004,
    AW_VER_NEGATIVE = 0x00000008,
    AW_CENTER = 0x00000010,
    AW_HIDE = 0x00010000,
    AW_ACTIVATE = 0x00020000,
    AW_SLIDE = 0x00040000,
    AW_BLEND = 0x00080000
    }
    [System.Runtime.InteropServices.DllImport("user32.dll")]
    static  extern bool AnimateWindow(IntPtr hWnd, int time, AnimateWindowFlags flags);

          Запустите ваш проект, нажав на клавиатуре клавишу «F5». При запуске вашего проекта вы увидите анимацию главной формы.

    Анимация Windows Form: Справочник по C#

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest
    moyadcode10
    moyadcode11
    moyadcode9