zoukankan      html  css  js  c++  java
  • winform 显示动态图片 Gif

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    using System.Diagnostics;

    namespace DysncPicTest

    {

        public partial class Form1 : Form

        {

            private Image m_imgImage = null;

            private EventHandler m_evthdlAnimator = null;

            public Form1()

            {

                InitializeComponent();

                this.SetStyle(ControlStyles.UserPaint, true);

                this.SetStyle(ControlStyles.DoubleBuffer, true);

                this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);

                m_evthdlAnimator = new EventHandler(OnImageAnimate);

                Debug.Assert(m_evthdlAnimator != null);

             // http://www.cnblogs.com/sosoft/

            }

            protected override void OnPaint(PaintEventArgs e)

            {

                base.OnPaint(e);

                if (m_imgImage != null)

                {

                    UpdateImage();

                    e.Graphics.DrawImage(m_imgImage, new Rectangle(100, 100, m_imgImage.Width, m_imgImage.Height));

                }

            }

            protected override void OnLoad(EventArgs e)

            {

                base.OnLoad(e);

                m_imgImage = Image.FromFile("1.gif"); // 加载测试用的Gif图片

                BeginAnimate();

            }

            private void Form1_FormClosing(object sender, FormClosingEventArgs e)

            {

                 if (m_imgImage != null)

                {

                    StopAnimate();

                    m_imgImage = null;

                }

            }

            private void BeginAnimate()

            {

               if (m_imgImage == null)

                    return;

            

               if (ImageAnimator.CanAnimate(m_imgImage))

               {

                    ImageAnimator.Animate(m_imgImage,m_evthdlAnimator);

               }

            }

            private void StopAnimate()

            {

                if (m_imgImage == null)

                    return;

                if (ImageAnimator.CanAnimate(m_imgImage))

                {

                    ImageAnimator.StopAnimate(m_imgImage,m_evthdlAnimator);

                }

            }

            private void UpdateImage()

            {

                if (m_imgImage == null)

                    return;

                if (ImageAnimator.CanAnimate(m_imgImage))

                {

                    ImageAnimator.UpdateFrames(m_imgImage);

                }

            }

            private void OnImageAnimate(Object sender,EventArgs e)

            {

                this.Invalidate();

            }

            private void Form1_Load(object sender, EventArgs e)

            {

            }

        }

    }

    。net交流
  • 相关阅读:
    1
    Dockerfile概述
    协议
    部署环境
    协议与数据2
    【笔记】刚到公司,初识dll
    C#Winform学习笔记
    VS2019添加VisionPro控件(此方法是大师分享的)
    VisionPro脚本
    Visionpro相机取像操作,.NET4.0
  • 原文地址:https://www.cnblogs.com/hcyblogs/p/4636122.html
Copyright © 2011-2022 走看看