/***************************************************************/
/*★ OnPaint() をオーバーロードしてアニメーション 前田 稔 ★*/
/***************************************************************/
using System;
using System.Drawing;
using System.Windows.Forms;
public class MyForm : Form
{
private Timer timer1;
private System.ComponentModel.IContainer components;
Bitmap bmp= null;
int SP_NO;
public MyForm()
{
// timer1
components = new System.ComponentModel.Container();
timer1 = new System.Windows.Forms.Timer(this.components);
SuspendLayout();
timer1.Interval = 200;
timer1.Tick += new System.EventHandler(this.timer1_Tick);
// MyForm
Name = "MyForm";
// Load Image
try
{
bmp= new Bitmap("c:\\data\\test\\girl.gif");
}
catch
{ MessageBox.Show("イメージが取得できません", "Error");
return;
}
SP_NO = 0;
timer1.Start();
}
protected override void OnPaint(PaintEventArgs e)
{
if (bmp == null)
{
Application.Exit();
return;
}
base.OnPaint(e);
Graphics g = e.Graphics;
g.DrawImage(bmp,new Rectangle(80,10,128,216),new Rectangle(SP_NO*128,0,128,216),GraphicsUnit.Pixel);
}
protected override void OnPaintBackground(PaintEventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
SP_NO= (SP_NO+1)%7;
Invalidate();
}
}
class anime
{
public static void Main()
{
MyForm mf = new MyForm();
Application.Run(mf);
}
}
|