有没有办法将Webbrowser内容绘制到特定的DC?

时间:2009-12-23 02:13:09

标签: com winapi webbrowser-control gdi iwebbrowser2

现在,我尝试在程序中创建一个hiden WebBrowser控件,并使用IViewObject接口绘制到我的自定义DC。

结果很好,我得到了我想要的所有内容,但是绘制速度是不可接受的,尤其是一些包含Flash对象的复杂网页,每个Draw to DC花费超过100毫秒。所以我画的flash对象并不流畅。

是否有快速方法将控件绘制到我的特定DC?

我的代码sinpet是这样的:

//hCompDc is a CompatibleDC which select a CompatibleBitmap.
RECTL imageRect = {0, 0, nWidth, nHeight};
pHtmlDocument2->QueryInterface(IID_IViewObject, (void **)&pViewObject);
pViewObject->Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, hCompDc, NULL, &imageRect, NULL, 0);

感谢您阅读此问题。

等待你的回答〜

2 个答案:

答案 0 :(得分:1)

没有其他办法可以做到这一点。您使用的所有组件 - IE,Flash等 - 都不是以这种方式使用的。如果绘制时间是个问题,则必须在单独的线程上进行并同步。

答案 1 :(得分:0)

试试这个: http://sourceforge.net/projects/wke/

char* buffer = new char[800*600*4];
IWebVeiw* webView = wkeCreateWebView("");    
webView->resize(800, 600);
webView->loadURL("www.google.com");
webView->paint(buffer, 0);
wkeDestroyWebView(webView);