[阅读: 496] 2005-08-26 03:58:23
FScreenBmp.Width:=Screen.Width;
FScreenBmp.Height:=Screen.Height;
FScreenBmp.PixelFormat:=pf24bit;
注意下面两句的区别:
bitblt(FScreenBmp.canvas.handle,0,0,FScreenBmp.width,FScreenBmp.height,ADC,0,0,srccopy);
bitblt(FScreenBmp.canvas.handle,0,0,100{FScreenBmp.width},100{FScreenBmp.height},ADC,0,0,srccopy);
按我的理解,第一句应该是抓到整个屏幕。运行结果的确也是抓到整个屏幕。
第二句,应该是抓到屏幕的(0,0)到(100,100)的画面,但我把抓到的图显示出来还是整个屏幕。
先不管这个参数是否能达到我只抓部分屏幕的想法。奇怪的问题是,这两句抓屏幕的语句消耗的CPU时间居然大大的不同。
第一句因为抓了整个屏幕,消耗230MS,第二句则只消耗30MS,差很远。如果第二句真的只抓了一部分画面,画面小了,消耗的时间小,也可以理解。问题是第二句抓下来的画面也是整个屏幕啊。这就有点奇怪了。
请高人们踊跃发表看法。