2010-12-02 1 views
1

В настоящее время используется wxHTML для отображения удаленной веб-страницы в приложении на основе Windows WxWidgets на C++.Как получить Internet Explorer в приложении wxWidgets?

Однако мне нужны более сложные функции, такие как рудиментарный стиль CSS и JavaScript. Самый простой способ, я думаю, будет встраивать Internet Explorer. Сохранение маленького размера .exe приложения является ключевым, поэтому я не думаю, что wxWebConnect подходит.

Как я могу это сделать? Я нашел некоторые ссылки на использование ActiveX для встраивания IE в приложение wxWidget, но я не могу найти никаких примеров или документации или что-то еще.

Обновление: причина, по которой он использует wxWidgets, является историческим. Проблемы с кроссплатформой не вызывает беспокойства, она должна работать только в Windows.

ответ

2

Я сделал именно это. Это довольно просто. По сути, вы используете элемент управления MSHTML ActiveX. Internet Explorer берет этот элемент управления и добавляет кнопки, историю, новые функции окна, вкладки и т. Д. Однако все части рендеринга, DOM и Javascript обрабатываются компонентом MSHTML.

Компонент wxActiveX позаботится о практических битах хоста ActiveX. wxIE, по-видимому, является производным классом, который объединяет виджет wxActiveX с элементом управления MSHTML и добавляет немного пользы. YMMV.

3

Одна из основных причин использования wxWidgets над некоторыми другими библиотеками виджетов заключается в том, что wxWindows является кросс-платформенной совместимостью. Вложение IE уничтожит это.

Это означает, что (а) это, вероятно, не очень хорошая идея (даже если вы не пишете для кросс-платформенной сейчас, вы можете изменить свое мнение в будущем) и (б) вы не найдете много другие люди делают это, поэтому учебники и примеры будут трудно найти.

Мое предложение было бы рассмотреть кросс-платформенный браузер вместо IE; Firefox кажется очевидным выбором.

Имея это в виду, я сделал быстрый Google для вас и пришел с этим, что кажется, что это может быть решением для вас: http://www.kirix.com/labs/wxwebconnect.html

Надежда, что помогает.

[EDIT] Конечно, виджет на основе Firefox даст вам намного лучший CSS/JS/HTML-рендеринг, чем текущие версии IE, поэтому это еще одна веская причина использовать его.

[EDIT] Повторение этого ответа, потому что я наткнулся на виджет Webkit, который также может стоить проверить. Вот ссылка я только что нашел: http://wxwebkit.kosoftworks.com/
(я знаю, что это ничего не меняет для OP, но это может быть полезным для всех, кто находит эту страницу)

+1

Cross-plattform - это не conern, он будет работать только под Windows (использование wxWidgets историческое). Вот почему в этом вопросе конкретно говорится об Internet Explorer. – stpe 2010-12-02 16:09:40

+1

@stefpet - достаточно справедливо. Я по-прежнему держу в своем комментарии к редактированию, что Firefox будет намного лучше. Этого было бы достаточно, чтобы убедить меня. ;) – Spudley 2010-12-02 16:13:59