一个关于屏幕截图的问题
procedure GetScreen(var bmp: TBitMap);
var
DC: HDC;
MyCanvas: TCanvas;
MyRect: TRect;
begin
DC:= GetWindowDC(0);
MyCanvas:= TCanvas.Create;
try
MyCanvas.Handle:= DC;
MyRect:=Rect(0+x-25, 0+y-25, Screen.Width-x+25, Screen.Height-y+25); // X,Y 为当前鼠标的屏幕坐标
bmp:= TBitMap.Create;
bmp.PixelFormat:= pf24bit;
bmp.Width:= 50;
bmp.Height:= 50;
bmp.PixelFormat:= pf32bit;
bmp.Canvas.CopyRect(MyRect, MyCanvas, MyRect);
finally
MyCanvas.Handle:= 0;
MyCanvas.Free;
releaseDC(0, DC);
end;
end;
这样截下图为什么每次都是 0,0 开始的 50X50 位图, 移到其他地方就是白色的了,求指点
[解决办法]
Rect(0+x-25, 0+y-25, Screen.Width-x+25, Screen.Height-y+25);
你限定它就是50*50了,你还能得到什么呢
[解决办法]
看来是Copy来的代码楼主自己还没理解透