首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

绘图残影,该如何解决

2012-02-08 
绘图残影 - C++ Builder / Windows SDK/APIC/C++ codeGraphics::TBitmap *Bitmap1this-Image1-Picture-

绘图残影 - C++ Builder / Windows SDK/API

C/C++ code
   Graphics::TBitmap *Bitmap1=this->Image1->Picture->Bitmap;     for(int i=Bitmap1->Width;i<=Bitmap1->Width*2;i++)   {                           TRect DestRect=Rect(Bitmap1->Width-i,0,Bitmap1->Width,Bitmap1->Height);     TRect SourceRect=Rect(0,0,i,Bitmap1->Height);     Application->ProcessMessages();     TRect rect=Rect(0,0,Bitmap1->Width,Bitmap1->Height);    // InvalidateRect(this->Handle,&rect,true);     Sleep(1);     Form1->Canvas->CopyRect(SourceRect,Bitmap1->Canvas,DestRect);   }

想要得到图像移出的效果,已经写好了移入,移出于是偷了下懒,结果移出时出现很严重的残影,使用
InvalidateRect(this->Handle,&rect,true);或Form1->Refresh()刷新出现同样严重的闪烁.

[解决办法]
如果是c6在Form1构造函数加上DoubleBuffered = true, 2010直接在窗口属性上设置。
如果闪烁还是严重,没啥好方法了,gdi界面就这样了。
[解决办法]
目前有效的方法就是首先开启双缓冲.

热点排行