TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
gyzhen1
NA
3
0
How to reduce the flicker?
May 18 2004 12:22 AM
I am a beginner in learning c#,I want to make a simple animation. I do it in this way:paint the background ,draw a circle;repaint the background ,draw another circle..... but the screen looks so flickering.How can i reduce the flicker?Someone told me to use "Double Buffering",but I don't konw how to use it.Could you give me an example or modify my code for me ? Thanks!!! My code: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Drawing.Drawing2D; namespace WindowsApplication7 { public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Timer timer1; private System.ComponentModel.IContainer components; Pen pen=new Pen(Color.Red,5); int i=0; public Form1() { InitializeComponent(); } protected override void OnPaint(PaintEventArgs e1) { Graphics g=e1.Graphics; e1.Graphics.SmoothingMode=SmoothingMode.AntiAlias; Brush bgBrush=new SolidBrush(Color.Green); g.FillRectangle(bgBrush,ClientRectangle); //Pen pen=new Pen(Color.Red,5); g.DrawEllipse(pen,100,150,50,50); } protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.timer1 = new System.Windows.Forms.Timer(this.components); // // timer1 // this.timer1.Enabled = true; this.timer1.Interval = 10; this.timer1.Tick += new System.EventHandler(this.timer1_Tick); // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(624, 341); this.Name = "Form1"; this.Text = "Form1"; } #endregion [STAThread] static void Main() { Application.Run(new Form1()); } private void timer1_Tick(object sender, System.EventArgs e) { //MessageBox.Show("SDF"); Graphics g=this.CreateGraphics(); Brush bgBrush=new SolidBrush(Color.Green); g.FillRectangle(bgBrush,ClientRectangle); g.DrawEllipse(pen,i+=5,150,50,50); String drawString = "Sample Text"; // Create font and brush. Font drawFont = new Font("Arial", 16); SolidBrush drawBrush = new SolidBrush(Color.Black); // Create point for upper-left corner of drawing. float x = 150.0F; float y = 50.0F; // Set format of string. StringFormat drawFormat = new StringFormat(); drawFormat.FormatFlags = StringFormatFlags.DirectionVertical; // Draw string to screen. g.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat); if(i>this.Width)i=0; } } }
Reply
Answers (
3
)
Blob analysis programming codes on captured images
Retrieving graphics object from image object