有些类似于拷屏,按print screen将整个屏幕复制到剪切版中,但如何复制一个form中的panel中的控件到一个image中呢。即将panel当成整个屏幕,复制成一个图形(图形和panel一致)。
解决方案 »
- TLIST是什么组件啊?
- 請幫我看一下為什么我用相對路徑打開不了exe文件
- 软件创意, 功能可以得到保护?
- 请问不能在循环中使用SQL语句吗?以下有个例子,有点搞不懂,请指教
- 排序后没法修改值
- 报表如何根据数据内容而自动进行分页显示??采用EXCEL模板
- 过年了,分数太多,散点分之8
- Delphi目录COPY问题
- 用Delphi6里的自带的InstallShield-professional制作安装盘时,怎样加到开始菜单里,请详细说明,立即给分!
- 请问那里有下载打开pdf格式的软件
- <<Delphi 6开发人员指南>>,广州哪个书店有卖这本书?
- 各位删除基类界面的多余的组件后使得子界面自动删除?
canvas = TControlCanvas.Create(Panel);
bmp = TBitmap.CreateCompatiable(canvas.Handle, panel.width, panel.height);
bitblt(canvas.Handel, 0, 0, panel.width, panel.height, bmp.canvas.handle, 0, 0, SRCCOPY);
var
h: HDC;
p: TPoint;
begin
p.X:= 0;
p.Y:= 0;
p:= Panel1.ClientToScreen(p);
h := getdc(0);
bitblt(image1.canvas.handle,0,0,Panel1.Width, Panel1.Height,h,p.X,p.Y,srccopy);
ReleaseDC(0,h);
end;
var c:TCanvas;begin c:=TControlCanvas.Create; TControlCanvas(c).Control:=Panel1;
Image1.Canvas.CopyRect(Image1.ClientRect,c,c.ClipRect);
c.Free;end;
var
Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
Bitmap.Width := Panel1.Width;
Bitmap.Height := Panel1.Height;
try
Panel1.PaintTo(Bitmap.Canvas,0,0);
Bitmap.SaveToFile('g:\jjj.bmp');
//Use Bitmap Do SomeThing..
finally
Bitmap.Free;
end;
end; ///////打印image
//////
Image1.Picture.LoadFromFile('f:\jjj.bmp');
with Image1.Picture.Bitmap do
begin
Printer.BeginDoc;
Printer.Canvas.StretchDraw(Canvas.ClipRect,Image1.Picture.Bitmap);
Printer.EndDoc;
end;
这样 效果不错