以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助:如何把整个窗口生成一张图片  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99981)

--  作者:yys983
--  发布时间:2017/5/2 11:12:00
--  求助:如何把整个窗口生成一张图片
请教大神,狐表能完成窗口图片生产吗?就是把整个独立窗口里面的内容保存为一张图片,包含里面所有控件和窗口背景的内容(窗体标题不需要包含,当然如果一定要包含也可以)。就类似独立窗体的屏幕截图这样的功能,不知道能实现吗?望大神指点。


ps:补充一下,最后是可以后台静默生成,而不是完成真正意义上的屏幕截图,屏幕截图是截取桌面的画面,我的意思是我想单独做一个凭证模板窗口,只要这边我填入数据,就静默运行这个凭证窗口生产一张凭证的图片。。。
希望大神指点~~感谢感谢
[此贴子已经被作者于2017/5/2 11:17:27编辑过]

--  作者:有点蓝
--  发布时间:2017/5/2 12:03:00
--  
利用窗口打印功能:http://www.foxtable.com/webhelp/scr/1590.htm
--  作者:有点色
--  发布时间:2017/5/2 12:16:00
--  

 2楼的打印,最后你保存成一张图片即可

 

http://www.foxtable.com/webhelp/scr/2450.htm

 

 如果是直接截屏的话,可以这样写

 

Dim point As Point = e.Form.Panel.PointToScreen(e.Form.panel.Bounds.Location)
Dim myGraphics As Graphics = basemainform.CreateGraphics()

Dim s As new Size(e.Form.panel.width, e.Form.panel.height) \'截取的大小

Dim bit As New Bitmap(s.Width, s.Height, myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
memoryGraphics.CopyFromScreen(point.x, point.y, 0, 0, s) \'截取的开始位置,坐标(100, 200)

bit.save("e:\\test.jpg")


--  作者:yys983
--  发布时间:2017/5/2 12:19:00
--  
感谢有点蓝大师,利用你提供的思路,我解决了,刚开始我也想过这个方法,但是就是背景一直保存不出来,刚刚你又说这个方法,然后我想到把背景放到一个面板控件里面去,这样就可以保存包含背景的图片了,感谢感谢,
--  作者:yys983
--  发布时间:2017/5/2 12:21:00
--  
对对,多谢有点色老师,就是用这个办法解决了,刚开始就是没办法保存背景图片,只能保存数据,后面加了个控件也解决了。谢谢谢谢