gpt4 book ai didi

winapi - Windows 浏览器控件与 CDHtmlDialog 和 CHtmlView

转载 作者:太空狗 更新时间:2023-10-29 21:28:18 24 4
gpt4 key购买 nike

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

Windows 浏览器控件与 CDHtmlDialogCHtmlView

可见这些东西是用来在UI中添加html内容的基于 Windows 的应用程序。

但是当我们在网上搜索的时候,往往会和这些东西混淆。

如果有人解释一下这些控件和类的可用性,那就太好了。

最佳答案

Web 浏览器控件是一个 Windows ActiveX 控件,可能由 Internet Explorer 本身用来显示 HTML 内容。至少,Web 浏览器控件和 Internet Explorer 使用相同的实现来呈现 HTML。

CHtmlView 是一个 MFC - CView - 托管所述 ActiveX 控件的派生类。
CHtmlDialog 是一个 MFC - CDialog - 执行相同操作的派生类。

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

我没有对这两个 MFC 类进行过大量工作,但据我所知,它们本身并没有添加任何功能。您也可以像普通 ActiveX 一样托管 Web 浏览器控件,并使用 GetControlUnknown 获取 IWebBrowser 接口(interface)。


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


附言Windows 现在提供基于 Edge 的 WebView2 - ActiveX 控件,作为一个足够强大的替代品。见https://learn.microsoft.com/en-us/microsoft-edge/webview2/

关于winapi - Windows 浏览器控件与 CDHtmlDialog 和 CHtmlView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7305701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com