VB程序员博客
请教:在窗体上布置好控件并在代码窗口中写完代码后,请问能编辑代码将窗体界面输出为图形(如格式为.jpg或.bmpg)保存吗???如若此法不行,那怎么才能将窗体界面输出为图形呢(窗体上原来设计有很多各种控件)????万分感谢,望赐教!!!!!!
用CreateCompatibleDC、CreateCompatibleBitmap、SelectObject、PrintWindow等API。
按Alt+PrtSc键拷屏,贴到画图板手工保存一下吧
是活动窗口。就是说里面窗体界面上有滚动条,整幅图片一个窗体容不下。能将这么大的图片自动输出成图形么
这种想法叫窗口抓图。
窗口正常显示的情况下抓图并保存成BMP文件格式的过程很简单,步骤如下
1、取得窗口句柄
(如果是自己的窗口就可以跳过这个过程)
2、通过窗口句柄取得窗口设备句柄
(如果是自己的窗口就可以跳过这个过程,直接使用 me.hDC 属性就取得了窗口设备句柄)
3、通过GDI函数将目标窗口设备绘制到指定设备
(可以将图片绘制到 PictureBox 中,这样简单点,不然就完全用GDI创建一个设备和位图,
然后再绘制到这个设备,不过这种方式稍微麻烦点,但效率比较高。通常使用 API 的 BitBlt
函数来进行抓图,比如:
Bitblt Picture1.hDC,0,0,Me.width,Me.Height,me.hDC,0,0,,,vbSecCopy
注意:PictureBox的AutoRedraw属性要是True,否则你绘图后用不了Image属性保存图片
4、保存图片
(可以用VB自代的函数保存,如:SavePicture Picture1.Image,"C:1.BMP"
注意:SavePicture函数不支持JPG格式,如果要保存JPG或GIF或TIF之类的格式,可以采用
GDI+技术实现,不过东西就多一点,你可以在CSDN搜索看看,以前有很多人发过很多GDI+相关
的帖子。)
要取得滚动信息,并进行循环滚动,每次滚动截一个小图,最后将所有小图拼成一个大图。
截图工具 snagit 就是这么做的。
要取得滚动信息,并进行循环滚动,每次滚动截一个小图,最后将所有小图拼成一个大图。
截图工具 snagit 就是这么做的。
我窗体上有两个picture控件,一个比较小,没有滚动条。另一个比较大,带有滚动条,可否实现将这一大一小的两控件里的内容完全输出到一副图片里。这个要求能实现吗,可否提供一些相关代码,万分感谢!!!!!不知道各位看懂我的意思没有。。。
帮你顶!
比较繁琐,不要让人误认为是抓“义工”哟,赵老师已经把思路告诉你了,还是结贴自己做吧……