2

这些天来,我尝试在我的程序中创建一个隐藏的 WebBrowser 控件,并使用 IViewObject 接口绘制到我的自定义 DC。

结果很好,我得到了我想要的所有内容,但是Draw速度是无法接受的,尤其是一些包含Flash对象的复杂网页,每次Draw to DC花费超过100 ms。所以我画的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);

感谢您阅读这个问题。

等待你的答案~

4

2 回答 2

1

没有其他方法可以做到这一点。您使用的任何组件(IE、Flash 等)都不是为这种方式使用而设计的。如果绘制时间是一个问题,您必须在单独的线程上进行并同步。

于 2009-12-23T02:21:35.343 回答
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);
于 2011-12-01T06:48:43.627 回答