我想知道以下控件和类之间的区别。
Windows Browser Control与CDHtmlDialog和CHtmlView。
可以看出,这些内容用于在UI中添加html内容 基于Windows的应用程序。
但是当我们在互联网上搜索时,人们常常会对这些事情感到困惑。
如果有人解释这些控制和类的可用性会很好。
答案 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可用。