MFC IE嵌入式Web浏览器古怪

时间:2008-09-11 09:41:54

标签: c++ internet-explorer mfc dialog

我有这个无模式MFC对话框,它嵌入了Internet Explorer Web浏览器控件。

控件直接从CWnd派生,并使用Visual Studio生成的ActiveX包装器,并且仅使用CDialog将其映射到DDX_Control(pDX, IDC_EXPLORER, m_explorer);

我有两个问题。

问题#1:

无模式,我使用new / Create(),然后DestroyWindow()/ delete(在PostNcDestroy中)开始和停止对话。

当IE控件开始加载Flash视频(常规YouTube内容)时,麻烦就开始了:当一个人关闭,从而破坏对话框时,视频仍会加载!直到完全缓存。即使父对话框已通过PostNcDestroy并释放所有内存,Flash ActiveX线程仍会继续运行并继续运行。

怎么办?你如何真正“杀死”那个子网页控件及其所有线程?

问题#2:

Web浏览器控件覆盖对话框的整个区域。我不能在父对话框或Web浏览器映射类中拦截任何OnMouseMove() - !是什么给了什么?

谢谢!


“清理”

在PostNcDestroy()中

“删除此” - 并且当然要调用基本功能。应该更多吗?什么?对话框不应该优雅地照顾孩子吗?

我试图在网络控件上显式调用DestroyWindow,或者发送/发布WM_DESTROY,WM_CLOSE甚至WM_QUIT等消息 - 但没有 - 同样的交易。

问题#2:

不,就像缩进一样,控件占据了所有空间并且它位于顶部,所以我猜任何鼠标操作都不会被传输'吼叫':)?但那为什么他自己的OnMouseMove不会被调用?因为它直接来自CWnd?我迷路了...

1 个答案:

答案 0 :(得分:3)

问题1)在销毁窗口之前尝试myBrowser.navigate(“about:blank”)。