Я пытаюсь разместить веб-браузер внутри диалогового окна. Я использую C++ с Win32 и ATL, без MFC. Существует элемент управления ActiveX (IWebBrowser2), который реализует эту функциональность. Трюк заключается в том, что мне кажется, что мне нужно создать класс диалога, который реализует десятки функций члена COM для этого. Нет ли более простого способа? Я смотрел ATL (не я не могу использовать MFC, иначе я бы использовал CDHtmlDialog), но не нашел ответов.Не удается определить, как размещать веб-браузер (например, IWebBrowser2) в диалоговом окне Win32. ATL в порядке, нет MFC
ответ
Вот отличный учебник о том, как выполнить именно то, что я пытаюсь сделать. В частности, это объясняет, как создать диалог с использованием ATL, но не WTL или MFC, на котором размещен веб-браузер (через IWebBrowser2).
Вот статья CodeProject, что демонстрирует процесс: http://www.codeproject.com/KB/wtl/wtl4mfc6.aspx
Предполагается, что вы будете использовать WTL, но я думаю, что она может быть использована только с АТЛ. WTL является расширением ATL.
Я думаю, что в какой-то момент прошлого WTL начал использоваться без ATL (например, для хорошо подходит и для экспресс-версий Visual Studio). –
Спасибо за ответ Марк. К сожалению, я не могу привнести зависимость от WTL. Я сейчас смотрю на код, пытаясь понять, как выполнить эту задачу только с ATL. –
Есть ли у вас код для публикации? –
Проверьте это - http://www.assembla.com/code/roatl-utilities/subversion/nodes/trunk/DispEventSample02/MainDlg.h. Это тоже ATL + WTL, а фрагмент кода очень компактен. В основном вам нужен интерфейс CAxDialogImpl и sink. –
Мне очень нравится ваш код Roman! К сожалению, я не могу повлиять на WTL. :( –