Frage

Ich habe diesen modalen MFC-Dialog, der ein Internet Explorer-Webbrowser-Steuerelement einbettet.

Die Steuerung wird direkt abgeleitet CWnd mit ActiveX-Wrappern, die von Visual Studio generiert wurden, und ich ordne es dem zu CDialog nur mit a DDX_Control(pDX, IDC_EXPLORER, m_explorer);.

Ich habe 2 Probleme.

Problem Nr. 1:

Da ich moduslos bin, starte und stoppe ich den Dialog nach Belieben mit new/Create() und dann DestroyWindow()/delete(in PostNcDestroy).

Das Problem beginnt, wenn die IE-Steuerung beginnt, ein Flash-Video zu laden (normales YouTube-Material):Wenn man es schließt und damit den Dialog zerstört, wird das Video trotzdem geladen!Bis zur vollständigen Cachespeicherung.Der Flash ActiveX-Thread bleibt bestehen und wird auch dann weiter ausgeführt, wenn der übergeordnete Dialog PostNcDestroy bestanden hat und der gesamte Speicher freigegeben wurde.

Was zu tun?Wie „tötet“ man diese untergeordnete Webkontrolle und alle ihre Threads wirklich?

Problem Nr. 2:

Die Webbrowser-Steuerung deckt den gesamten Bereich des Dialogs ab.Ich kann keine abfangen OnMouseMove() - im übergeordneten Dialog oder in der Webbrowser-Zuordnungsklasse!Was gibt?

Danke!


"Aufräumen"

„delete this“ in PostNcDestroy() – und natürlich den Aufruf der Basisfunktion.Sollte es mehr sein?Was?Sollte sich der Dialog nicht würdevoll um seine untergeordneten Elemente kümmern?

Ich habe versucht, DestroyWindow explizit in der Websteuerung aufzurufen oder ihm Nachrichten wie WM_DESTROY, WM_CLOSE oder sogar WM_QUIT zu senden/zu posten – aber nichts – das Gleiche.

Problem Nr. 2:

Nein, wie eingerückt, das Steuerelement nimmt den gesamten Platz ein und befindet sich oben, sodass ich vermute, dass keine Mausaktion „unten“ übertragen wird :)?Aber warum wird dann nicht sein eigener OnMouseMove aufgerufen?Weil es direkt von CWnd ausgeht?Ich bin verloren...

War es hilfreich?

Lösung

Problem 1) versuchen myBrowser.navigate ( "about: blank"), bevor das Fenster zu zerstören

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top