GDI+ 的绘画中的双缓冲。

GDI+最大的特色就是Graphics,并提供了更多的画图功能。
通过这几天的学习,对绘图基本有个掌握.
首先我们来谈双缓冲的技术.
如果我们是直接在窗体上绘图的话,我们可以使用如下的方法
  this.SetStyle(ControlStyles.DoubleBuffer |
      ControlStyles.UserPaint |
      ControlStyles.AllPaintingInWmPaint,
      true);
   this.UpdateStyles();
通过Form的OnPaint()就可以绘无闪硕的图形了.
还有一种方法:
  使用一个 Bitmap作为后端.
  private Bitmap renderSurface = null;
  初始化renderSuface()
  private void DoRenderSurface()
  {
   if (renderSurface != null)
   {
    renderSurface.Dispose();
   }
   renderSurface =new Bitmap(ClientRectangle.Width,ClientRectangle.Height);

   using (Graphics g = Graphics.FromImage(renderSurface))
   {
    g.Clear(this.BackColor);
   }

   

  }
   画图
   private void DoDraw(Graphics g)
  {
   if (renderSurface == null)
   {
    DoRenderSurface();
   }
   g.DrawImage(renderSurface,ClientRectangle,ClientRectangle,GraphicsUnit.Pixel);
  }

posted @ 2005-06-14 21:17  wanghualiang  阅读(1014)  评论(0编辑  收藏  举报