我一直在尝试将 IWebBrowser2 控件中的整个 Canvas 呈现为位图。 IViewObject::Draw 似乎是最有前途的方法,但我无法让它呈现任何需要滚动才能显示的内容。虽然我可以自动滚动并将图像拼接在一起,但这对于任何固定位置的元素来说看起来都很奇怪。这甚至可行吗?
此外,我尝试将 Controller 的大小设置为无需滚动即可显示全部内容的大小,但 Windows 将最大大小限制为当前屏幕分辨率,因此只能部分显示。
任何帮助将不胜感激。我目前是在 Win7 和 IE8 环境下执行此操作,但我认为这应该无关紧要。
最佳答案
对不起,我花了这么长时间才跟进这个问题的答案。
我写了一篇文章,详细介绍了如何诱使 Windows 允许您调整大于虚拟屏幕分辨率的窗口,允许 PrintWindow 或 IViewObject::Draw 等函数捕获整个客户区域(即浏览器 Canvas )。
http://nirvdrum.com/2010/03/25/how-to-take-full-page-or-full-canvas-screenshots-in-windows.html
可以在我的 GitHub 上的 SnapsIE 存储库(用户名:nirvdrum)中找到该技术的实际实现。不幸的是,我没有足够的业力来发布两个超链接。存储库链接自文章。
关于com - 如何使用 IViewObject::Draw 渲染 Canvas 的可滚动区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2159607/