把窗体界面保存为图片
GetControlsImage(Self).SaveToFile('D:\tools\a.bmp');
function GetControlsImage(ACtrl: TWinControl): TBitmap;
var
Ofs: Integer;
begin
Result := TBitmap.Create;
try
Result.Width := ACtrl.ClientWidth;
Result.Height := ACtrl.ClientHeight;
Result.Canvas.Brush := ACtrl.Brush;
Result.Canvas.FillRect(ACtrl.ClientRect);
Result.Canvas.Lock;
try
if GetWindowLong(ACtrl.Handle, GWL_STYLE) and WS_BORDER <> 0 then
Ofs := -1 // Don't draw form border
else
Ofs := 0; // There is no border
ACtrl.PaintTo(Result.Canvas.Handle, Ofs, Ofs);
finally
Result.Canvas.Unlock;
end;
except
Result.Free;
raise;
end;
end;