【问题标题】:How to get Internet Explorer in a wxWidgets application?如何在 wxWidgets 应用程序中获取 Internet Explorer?
【发布时间】:2011-05-19 03:42:39
【问题描述】:

目前使用 wxHTML 在基于 C++ Windows wxWidgets 的应用程序中显示远程网页。

但是,我需要更高级的功能,例如基本的 CSS 样式和 JavaScript。我猜最简单的方法是嵌入 Internet Explorer。保持应用程序的 .exe 大小是关键,所以我认为 wxWebConnect 不太合适。

我该怎么做?我发现了一些关于使用 ActiveX 将 IE 嵌入 wxWidget 应用程序的参考资料,但我找不到任何示例或文档或任何内容。

更新:它使用 wxWidgets 的原因是历史性的。跨平台问题不用担心,它应该只在 Windows 中运行。

【问题讨论】:

    标签: c++ windows visual-studio internet-explorer wxwidgets


    【解决方案1】:

    在某些其他小部件库上使用 wxWidgets 的主要原因之一是 wxWindows 是跨平台兼容的。嵌入 IE 会破坏它。

    这意味着 (a) 这可能不是一个好主意(即使您现在不为跨平台编写,但您将来可能会改变主意),并且 (b) 您不会找到很多其他的这样做的人,所以很难找到教程和示例。

    我的建议是考虑使用跨平台浏览器而不是 IE; Firefox 似乎是显而易见的选择。

    考虑到这一点,我为你做了一个快速的谷歌搜索并想出了这个,这似乎对你来说可能是一个解决方案:http://www.kirix.com/labs/wxwebconnect.html

    希望对您有所帮助。

    [编辑] 当然,与当前版本的 IE 相比,基于 Firefox 的小部件会为您提供更好的 CSS/JS/HTML 渲染,因此这是另一个使用它的好理由。

    [编辑] 重新访问这个答案是因为我偶然发现了一个 Webkit 小部件,这也可能值得一试。这是我刚刚找到的链接:http://wxwebkit.kosoftworks.com/
    (我知道这不会改变 OP 的任何内容,但它可能对找到此页面的其他人有所帮助)

    【讨论】:

    • 跨平台是不行的,它只会在Windows下运行(wxWidgets的使用是历史性的)。这就是为什么这个问题特别提到 Internet Explorer。
    • @stefpet - 很公平。我仍然坚持我的编辑评论认为 Firefox 会渲染得更好。仅此一项就足以说服我。 ;)
    【解决方案2】:

    我正是这样做的。这很简单。本质上,您承载 MSHTML ActiveX 控件。 Internet Explorer 接管该控制,并添加按钮、历史记录、新窗口功能、选项卡等。但是,所有呈现、DOM 和 Javascript 部分都由 MSHTML 组件处理。

    wxActiveX 组件将负责 ActiveX 托管的实际操作。 wxIE 显然是一个派生类,它结合了 wxActiveX 小部件和 MSHTML 控件,并添加了一些润色。 YMMV。

    【讨论】:

    • 是本页提到的 wxActiveX 吗? wiki.wxwidgets.org/WxActiveX 好像被遗弃了? wxIE,我听说过,但在文档方面还是找不到任何“官方”的东西。
    • 似乎是一样的,是的。它可能被“放弃”,但这并不能阻止它工作。但是,请记住,您必须重新检查每个版本的 IE 其行为方式 - 不是 ActiveX 端,它是稳定的,但 IE 的内部渲染引擎会定期更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    相关资源
    最近更新 更多