Exemple d’animation avec ‘DoubleBuffered’

Author:

Modifier,le,mode,de,composition,d'une,image
{filelink=16667}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

public class AnimationDoubleBuffer : Form
{

    /**
     *  Animation des objets avec DoubleBuffered
     *
     *
     *
     *
     *           */

    private int taille = 0;
    private bool aRetrecir = true;

    private System.Windows.Forms.Timer monTimer;
    private IContainer components;
    private System.Windows.Forms.CheckBox checkBoxEtat;
      public AnimationDoubleBuffer()
      {
      InitializeComponent();
      monTimer.Start();
      }

    private void tmrRefresh_Tick(object sender, System.EventArgs e)
    {
      if (aRetrecir)
        taille--;
      else
        taille++;

      if (taille > this.Width/2)
        aRetrecir = true;
      else if (taille < 1)
        aRetrecir = false;

      this.Invalidate();
    }

    private void DoubleBuffering_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
      this.DoubleBuffered = checkBoxEtat.Checked;

      Graphics g = e.Graphics;
      g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
      g.DrawEllipse(new Pen(Color.Black, 10), 50, 50, 50 + taille, 50 + taille);

    }
    private void InitializeComponent()
    {
        this.components = new System.ComponentModel.Container();
        this.monTimer = new System.Windows.Forms.Timer(this.components);
        this.checkBoxEtat = new System.Windows.Forms.CheckBox();
        this.SuspendLayout();
        //
        // monTimer
        //
        this.monTimer.Interval = 1;
        this.monTimer.Tick += new System.EventHandler(this.tmrRefresh_Tick);
        //
        // checkBoxEtat
        //
        this.checkBoxEtat.BackColor = System.Drawing.Color.DarkSalmon;
        this.checkBoxEtat.Location = new System.Drawing.Point(12, 12);
        this.checkBoxEtat.Name = "checkBoxEtat";
        this.checkBoxEtat.Size = new System.Drawing.Size(336, 16);
        this.checkBoxEtat.TabIndex = 2;
        this.checkBoxEtat.Text = "Utiliser le Double Buffering";
        this.checkBoxEtat.UseVisualStyleBackColor = false;
        //
        // AnimationDoubleBuffer
        //
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(422, 373);
        this.Controls.Add(this.checkBoxEtat);
        this.Name = "AnimationDoubleBuffer";
        this.Text = "Animation Double Buffer";
        this.Paint += new System.Windows.Forms.PaintEventHandler(this.DoubleBuffering_Paint);
        this.ResumeLayout(false);

    }
  [STAThread]
  static void Main()
  {
    Application.EnableVisualStyles();
    Application.Run(new AnimationDoubleBuffer());
  }

}

Leave a Reply

Your email address will not be published. Required fields are marked *