2

最近、私は自分のプログラムで非表示の WebBrowser コントロールを作成しようとし、IViewObject インターフェイスを使用してカスタム DC に描画します。

結果は問題ありません。必要なすべてのコンテンツが得られましたが、描画速度は受け入れられません。特に、Flash オブジェクトを含む一部の複雑な Web ページでは、DC への描画ごとに 100 ミリ秒以上のコストがかかります。そのため、私が描いたフラッシュ オブジェクトは滑らかではありません。

特定の 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 に答える