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

文章作者 100test 发表时间 2008:01:04 13:01:12
来源 100Test.Com百考试题网


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

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

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、释放内存缓冲区

0delete BufferBmp.

相关文章


实现窗体的渐变背景
怎样在ACCE 表中隐藏列
恢复从Acce 2000、Acce 2002或Acce 2003数据库中删除表的方法
用CB实现图像的特技显示
使用双缓冲技术绘制曲线图
用C Builder对图像进行特殊效果处理
FAQ:用代码定义字段AllowZeroLength和Required属性
怎样在表中插入、删除和移动字段
C 编程指南学习(七)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛