c++builder图象滚动字幕闪问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:00:50
我实现的是image控件的字幕滚动,已经实现,但是在滚动过程中出现闪动现象,我试过用StaticText控件没有闪动问题,用Label也闪,不知道为什么用image控件会闪呢?应该如何解决?? 谢谢大家了

注:我不想用其他控件实现字幕,我只要用image控件,因为我希望滚动的是图片.

你说的情况我试了,确实是这样的,我想可能是因为Image移动时窗体背景必须不断重绘所致,可是又想不到什么好的方法解决,后来还是放弃了Image,用了缓冲技术,可能有点麻烦,限制也比较大,不知道合不合你意:
1.TForm类中加几个成员变量Graphics::TBitmap *img,*q;int xx,yy;
2.加一个Timer控件;
3.完成以下事件及代码:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
img=new Graphics::TBitmap;//保存字幕的图像
q=new Graphics::TBitmap;//缓冲区
img->LoadFromFile("xx.bmp");//好像只能用位图
q->Width=Width;//定义缓冲区大小
q->Height=img->Height;

xx=-img->Width;yy=(Height-img->Height)/2;//图像输出的位置
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
delete img;
delete q;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
xx+=1;//动画前进步长
if (xx>Width) xx=-img->Width;
PatBlt(q->Canvas->Handle,0,0,Wid