窗体可以直接打印,就不知道怎么直接打印控件?

xuyunlo88 2003-09-20 03:48:34
窗体可以直接打印,就不知道怎么直接打印控件?我用Scollbox作为容器,在Scollbox用shape画了一个图,想把Scollbox整个打印出来,但Scrollbox没有print或preview一类的方法。
另外,好象窗体这一类的打印是1:1的,窗体有多大,打印出来就有多大,怎么才能让它自适应纸张大小呢?
...全文
26 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxpbuaa 2003-09-21
  • 打赏
  • 举报
回复
控件也是放在窗体上的啊,你可以调用Form.Canvas.CopyRect将控件的整个图像抓下来,然后打印。
例如:

var
BMP: TBitMap;
SR, DR: TRect;
P: TPoint;
begin
BMP := TBitMap.Create;
BMP.Width := ScrollBox1.Width;
BMP.Height := ScrollBox1.Height;
P := ScrollBox1.ClientToParent(Point(0, 0), Self);
SR := Rect(P.X, P.Y, BMP.Width, BMP.Height);
DR := Rect(0, 0, BMP.Width, BMP.Height);
BMP.Canvas.CopyRect(DR, Canvas, SR);
//这时候就可以打印BMP包含的图像了
//也可以保存到文件:BMP.SaveToFile('g:\b.bmp');
BMP.Free;
end;

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
xuyunlo88 2003-09-21
  • 打赏
  • 举报
回复
那TBitMap又怎么打印呢?

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧