[阅读: 433] 2005-08-22 08:56:07
function TForm1.CapScreen_1: TBitmap;
var
ADC:HDC;
begin
FScreenBmp.Width:=Screen.Width;
FScreenBmp.Height:=Screen.Height;
ADC:=GetDC(0);
try
bitblt(FScreenBmp.canvas.handle,0,0,FScreenBmp.width,FScreenBmp.height,ADC,0,0,srccopy);
finally
ReleaseDC(0,ADC);
end;
Result:=FScreenBmp;
end;
为避免不停地Create/Free 那个TBitmap,这里的 FScreenBmp:TBitmap 是在程序一开始就Create好了的。
如果只运行这段代码,CPU并没跑多快。但只要把 FScreenBmp.SaveToStream(MyStream) 这段代码加上去,CPU立即跑到100%