龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

使用双缓冲技术绘制曲线图

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
当数据量很大时,绘图可能需要几秒钟甚至更长的时间,而且有时还会出现闪烁现象,为了解决这些问题,可采用双缓冲技术来绘制曲线图。 双缓冲即在内存中创建一个与屏幕绘图区域

  当数据量很大时,绘图可能需要几秒钟甚至更长的时间,而且有时还会出现闪烁现象,为了解决这些问题,可采用双缓冲技术来绘制曲线图。

  

  双缓冲即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样能大大加快绘图的速度。双缓冲实现过程如下:

  

  1、在内存中创建与画布一致的缓冲区

  

  BufferBmp=new Graphics::TBitmap();

  

  BufferBmp->Canvas->Handle=CreateCompatibleDC(Canvas->Handle);

  

  BufferBmp->Width=Width;

  

  BufferBmp->Height=Height;

  

  2、在缓冲区画图

  

  BufferBmp->Canvas->Brush->Color=clBTnFace;

  

  BufferBmp->Canvas->FillRect(Rect(0,0,Width,Height));

  

  BufferBmp->Canvas->MoveTo(…);

  

  …………………………

  

  3、将缓冲区位图拷贝到当前画布上

  

  BitBlt(Canvas->Handle,0,0,Width,Height,BufferBmp->Canvas->Handle,0,0,SRCCOPY);

  

  4、释放内存缓冲区

  

  delete BufferBmp;

  

精彩图集

赞助商链接