我有这个无模式MFC对话框,它嵌入了Internet Explorer Web浏览器控件.
控件直接来自CWnd
Visual Studio生成的ActiveX包装器,我将其映射到CDialog
仅使用a DDX_Control(pDX, IDC_EXPLORER, m_explorer);
.
我有2个问题.
作为无模式,我使用new/Create(),然后DestroyWindow()/ delete(在PostNcDestroy中)开始和停止对话.
当IE控件开始加载Flash视频(常规YouTube内容)时,麻烦就开始了:当一个人关闭,从而破坏对话框时,视频仍会加载!直到完全缓存.即使父对话框已通过PostNcDestroy并释放所有内存,Flash ActiveX线程仍会继续运行并继续运行.
该怎么办?你如何彻底"杀死"那个子网页控件及其所有线程?
Web浏览器控件覆盖对话框的整个区域.我无法拦截任何OnMouseMove()
- 在父对话框或Web浏览器映射类中!是什么赋予了?
谢谢!
"清理"
在PostNcDestroy()中"删除此" - 并且当然调用基本功能.应该更多吗?什么?对话框不应该优雅地照顾孩子吗?
我试图在Web控件上显式调用DestroyWindow,或者发送/发布他的消息,如WM_DESTROY,WM_CLOSE,甚至WM_QUIT - 但没有 - 同样的交易.
问题#2:
不,就像缩进一样,控件占用所有空间而且它位于顶部所以我猜任何鼠标动作都不会被传输'吼叫':)?但那为什么他自己的OnMouseMove不会被调用?因为它直接来自CWnd?我迷路了...