vb实现无闪烁画图
在实现动态图形显示时,总会有闪烁的情况发生。在MFC里可以用双缓冲,那在VB里该如何实现呢? 问题点数:50、回复次数:7Top
1 楼DooDu(杜霖:I want,I can(开关拉))回复于 2005-06-03 13:40:21 得分 2
me.autoredraw=trueTop
2 楼sandy_zhang()回复于 2005-06-03 14:02:11 得分 0
这个似乎没有用Top
3 楼crycoming(瞎编)回复于 2005-06-03 14:15:40 得分 8
VB的办法比较苯,设Visible=false 好了再Visible=True
还有一种API的方法,先把图片加载在隐藏PictureBox中,然后在Copymemory 到指定设备
自己在网上找找 应当有例子的Top
4 楼sandy_zhang()回复于 2005-06-03 14:27:29 得分 0
嗯,好,我试试看
我正想用API函数试试看,这样可能就比较象MFC的双缓冲了Top
5 楼huangguanshu()回复于 2005-06-03 14:31:20 得分 40
应该先创建一个内存dc,在这个dc上画完图后,再将这个dc上的图象用bitblt复制picturebox
Top
6 楼sandy_zhang()回复于 2005-06-06 11:13:41 得分 0
嗯,原理我已经理解了,正在通过实践验证。谢谢各位!Top
7 楼okay2003()回复于 2005-07-12 09:15:10 得分 0
最简单有效的办法,其原理也是在内部实现了双缓冲功能。就是用一个imagelist控件来储存图形集,然后把要显示该图形集的容器(如:image,picturebox,form)依次与imagelist控件内不同编号的图形相连接。因为存在imagelist里面的图形已经在内存中,所以不用再在内存中绘制,实现了双缓冲。闪烁的问题解决了!
例:
首先设立一个image控件,和一个imagelist控件
然后在imagelist1控件内存入10个图形,
For n = 1 To 10
Set Image1.Picture = ImageList1.ListImages(n).Picture
Next nTop




