c++ - los - MFC IE navegador web incrustado wackiness
como funcionan los navegadores web (1)
problema 1) pruebe myBrowser.navigate ("about: blank") antes de destruir la ventana.
Tengo este diálogo MFC no modal que incorpora un control de navegador web Internet Explorer.
El control se deriva directamente de CWnd
con envoltorios de ActiveX generados por Visual Studio, y lo mapeo en el CDialog
usando solo un DDX_Control(pDX, IDC_EXPLORER, m_explorer);
.
Tengo 2 problemas
Problema n. ° 1:
Siendo no modal, comienzo y detengo el diálogo por mi propio gusto usando new / Create (), luego DestroyWindow () / delete (en PostNcDestroy).
El problema comienza cuando el control IE comienza a cargar un video Flash (cosas normales de YouTube): cuando uno se cierra, destruyendo el diálogo, ¡el video aún se carga! Derecha hasta completamente en caché. El subproceso Flash ActiveX aún persiste y continúa ejecutándose incluso cuando el cuadro de diálogo principal ha pasado PostNcDestroy y se ha liberado toda la memoria.
¿Qué hacer? ¿Cómo se puede ''matar'' a ese control web infantil y todos sus hilos?
Problema n. ° 2:
El control del navegador web cubre todo el área del diálogo. No puedo interceptar ningún OnMouseMove()
- en el cuadro de diálogo principal o en la clase de asignación del navegador web. ¿Lo que da?
¡Gracias!
"Limpiar"
"eliminar esto" en PostNcDestroy () - y llamando al func base, por supuesto. ¿Debería ser más? ¿Qué? ¿No debería el diálogo cuidar con gracia a sus hijos?
Traté de llamar explícitamente a DestroyWindow en el control web, o enviar / publicar mensajes como WM_DESTROY, WM_CLOSE, incluso WM_QUIT, pero nada, el mismo trato.
Problema n. ° 2:
No, como sangría, el control toma todo el espacio y está arriba así que supongo que cualquier acción del mouse no se transmite ''abajo'' :)? Pero entonces, ¿por qué no se llama a su propio OnMouseMove? Porque va directamente desde CWnd? Estoy perdido...