Windows Browser Control与CDHtmlDialog和CHtmlView

时间:2011-09-05 08:44:57

标签: c++ visual-studio-2008 winapi visual-c++ mfc

我想知道以下控件和类之间的区别。

Windows Browser Control与CDHtmlDialog和CHtmlView。

可以看出,这些内容用于在UI中添加html内容 基于Windows的应用程序。

但是当我们在互联网上搜索时,人们常常会对这些事情感到困惑。

如果有人解释这些控制和类的可用性会很好。

1 个答案:

答案 0 :(得分:3)

Web浏览器控件是Windows ActiveX控件,Windows资源管理器本身可能使用它来显示HTML内容。至少,Web浏览器控件和Windows资源管理器使用相同的实现来呈现HTML。

CHtmlView是一个MFC - CView派生的类,托管所述ActiveX控件 CHtmlDialog是一个MFC - CDialog派生类,做同样的事情。

它们是单独的类,因为不幸的是MFC在对话框,视图和窗口之间存在“巨大差距”。

我没有使用任何一个MFC类,但据我了解,他们不会自己添加任何功能。您也可以像普通ActiveX一样托管Web浏览器控件,并使用GetControlUnknown获取IWebBrowser接口。


根据我的经验,最大的问题是DOM只能在DocumentComplete之后访问,并且在消息循环不泵之前该事件不会触发。这使得一些操作相当痛苦我最终得到了自定义接口排队修改,直到DOM可用。