- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用以下代码来获取 IWebBrowser2 控件内容的图元文件矢量图像,如下所示:
IHTMLElement* pDocBody;
IHTMLDocument2* pDoc;
......
pDoc->get_body(&pDocBody);//获取 IHTMLDocument2 的正文元素
pDocBody->get_parentElement(&pEleParent);pEleParent->QueryInterface(IID_IHTMLElement2,(void**)&pRenderEle2);//获取要渲染的元素
pRenderEle2->QueryInterface(IID_IHTMLElementRender,(void**)&pRender);//获取渲染接口(interface)
HDC hMetaDC=::CreateEnhMetaFile(hRefDC,PictFile,&MetaRect,NULL);//获取DC
hr = pRender->DrawToDC(hMetaDC);
上面的代码与 IE6、IE7、IE8 完美配合,为浏览器内容提供矢量图像。但上面的 DrawToDC 调用因 IE9 Beta 版本(在 Windows 7 32 位上测试)而失败,错误代码为: 0x8007000e 。
我尝试过使用WM_PRINT和其他绘制方法,但我只能获取位图图像,而不能获取矢量图像。
知道上面代码中为什么 DrawToDC 在 IE9 上失败,以及是否有其他方法使用 IE9 获取矢量图像。
谢谢,子哈希
<小时/>谢谢,我担心可能是这样。您知道是否有方法可以将 IE9 渲染暂时切换为 GDI 模式。我预计这会降低渲染质量/效率,而我在当前的应用程序中应该能够忍受。
最佳答案
这只是一个猜测。 IE9 提倡通过硬件加速实现更快的渲染。我怀疑他们正在绕过 GDI 并使用更直接的东西,例如新的 DirectWrite 和/或 Direct2D API。图元文件基本上是 GDI 调用的序列化。如果没有 GDI 调用,就没有太多可捕获的内容。所以你可能不走运。 :-(
关于render - DrawToDC 在 IE9 Web 浏览器控件上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3824042/
我一直在使用以下代码来获取 IWebBrowser2 控件内容的图元文件矢量图像,如下所示: IHTMLElement* pDocBody; IHTMLDocument2* pDoc; ......
我是一名优秀的程序员,十分优秀!