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

一个关于重画的有关问题,困扰了好久,请大家帮帮忙,不甚感激

2012-01-08 
一个关于重画的问题,困扰了好久,请大家帮帮忙,不甚感激我是在一pictruebox控件中用API函数画了好多矩形和

一个关于重画的问题,困扰了好久,请大家帮帮忙,不甚感激
我是在一pictruebox控件中用API函数画了好多矩形和类似按钮的图形,矩形用来接受串口收到的数据,但是问题是每收到一次数据,整个画面都要重画,效果就是感觉整个画面收到一次数据就闪一次,并且数据是隔几秒收一次,所以整个画面就不断地在闪.我现在想在收到数据时不要闪烁,只让数据更新而已,希望各位给点思路,最好给些有参考意义的代码,望不吝赐教!

[解决办法]
画面闪烁的原因,是因为擦除与重绘交替引起的。
图片重绘前一般都要先擦除,这时图形消失,接着重绘又出现,人眼就会产生闪烁感。
解决办法:
1、使用VB或API绘图的话,不要在目标容器中加入Label、shape、line等VB轻量控件,因为它们在绘图后,会自动擦除重绘,不可避免会产生闪烁!
2、programart_life(理论派)说的方法,是正确的方案;
3、也可以,将目标容器的Autoredraw设为true;

2与3方案本质上相同的,都是用一个内存DC建立缓冲,在内存DC中擦除并重绘,然后再Bitblt到前台DC,因为前台看不到擦除过程,闪烁就不会出现了。

热点排行