优化之路:优化VB程序的显示速度
IT商界
大家在用ACDSee浏览图片时,经常会碰到这种情况,在浏览小图片时,图片可以迅速显示出来,而浏览大图片时,图片会很慢才显示出来,这就是感觉速度。
由于微软Windows的图形特性,图形和其他操作的显示速度在很大程度上决定了应用程序的感觉速度。窗体显现得越快,程序就显得越快。下面集几种技术可帮助提高程序的显示速度:
1.将容器的ClipControls属性设为False;
2.恰当地使用AutoRedraw;
3.使用Image控件代替PictureBox控件;
4.设置属性是隐藏控件以避免多次重画;
5.使用Line代替PSet。
将窗体框架PictrueBox设为False时,在重画控件本身之前,VB不会用背景色覆盖控件。在窗体包含大量控件时,会大大提高显示速度。但是在使用图形方法时不可用。
当窗体或控件的AutoRedraw设成False时,VB会用位图重画该窗体或控件。这样虽会提高简单情况下的重画速度(例如,删除覆盖在窗体或控件上的窗口后,窗体或控件重新显示),但会降低图形显示的速度。此时,VB会在AutoRedraw位图上进行图形方法操作,再把整个位图复制到屏幕上。这个过程也会占用很多内存。如果程序产生的图形不很复杂或复杂但不常变时可设成True,否则设成False更合适些。
应用程序仅仅显示图片,并只对单击事件和鼠标操作作出响应,应使用Image。除非需要图片框提供的特殊功能,如图形方法,包含其他空间的能力或动态数据交换,否则不要使用图片框。
而使用Line代替PSet时因为Line比PSet快。一般简单不常变的图形元素采用直线控件来处理比较合适;复杂或频繁改变的图形最好用PSet。