當數據量很大時,繪圖可能需要幾秒鐘甚至更長的時間,而且有時還會出現閃爍現象,為了解決這些問題,可采用雙緩沖技術來繪制曲線圖。
雙緩沖即在內存中創建一個與屏幕繪圖區域一致的對象,先將圖形繪制到內存中的這個對象上,再一次性將這個對象上的圖形拷貝到屏幕上,這樣能大大加快繪圖的速度。雙緩沖實現過程如下:
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;