2 Stimmen

Gibt es eine Möglichkeit, Webbrowser-Inhalte auf einen bestimmten DC zu beziehen?

In diesen Tagen versuche ich, ein verstecktes WebBrowser-Steuerelement in meinem Programm zu erstellen, und mit der IViewObject-Schnittstelle zu meinem benutzerdefinierten DC zu zeichnen.

Das Ergebnis ist gut, ich habe alle Inhalte, die ich will, aber die Zeichengeschwindigkeit ist inakzeptabel, vor allem einige komplexe Webseiten, die Flash-Objekte enthalten, Jeder Draw to DC kostet mehr als 100 ms . Das von mir gezeichnete Blitzobjekt ist also nicht glatt.

Gibt es eine schnelle Möglichkeit, das Steuerelement auf einen bestimmten DC zu ziehen?

Mein Code sieht folgendermaßen aus:

//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);

Vielen Dank, dass Sie diese Frage gelesen haben.

Ich warte auf Ihre Antworten~

0 Stimmen

Was versuchen Sie zu erreichen?

0 Stimmen

@Daniel Ich versuche, den Inhalt des WebBrowsers reibungslos zu erhalten, und zeichnen Sie es woanders, wie DirectX Oberfläche oder MemDC. Und besser, wenn ich die ursprüngliche Browser-UI ausblenden kann

1voto

i_am_jorf Punkte 52346

Es gibt keine andere Möglichkeit, dies zu tun. Keine der Komponenten, die Sie verwenden - IE, Flash usw. - wurde für diese Art der Verwendung konzipiert. Wenn die Zeichenzeit ein Problem ist, müssen Sie es in einem separaten Thread tun und synchronisieren.

0voto

blzfans Punkte 21

Versuchen Sie dies: 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);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X