Определение элементов для проекта элемента управления DHTML
Большинство кода элемента управления DHTML точно так же, как и для любого элемента управления ATL. Чтобы получить базовое представление об универсальном коде, ознакомьтесь с руководством по ATL и ознакомьтесь с разделами о создании проекта ATL и основах com-объектов ATL.
Элемент управления DHTML аналогичен любому элементу управления ATL, кроме:
Помимо обычных интерфейсов, реализующих элемент управления, он реализует дополнительный интерфейс, используемый для обмена данными между кодом C++ и пользовательским интерфейсом HTML. Пользовательский интерфейс HTML вызывает код C++ с помощью этого интерфейса.
Он создает HTML-ресурс для пользовательского интерфейса элемента управления.
Он позволяет получить доступ к объектной модели DHTML через переменную-член
m_spBrowser
, которая является умным указателем типа IWebBrowser2. Используйте этот указатель для доступа к любой части объектной модели DHTML.
На следующем рисунке показана связь между библиотекой DLL, элементом управления DHTML, веб-браузером и ресурсом HTML.
Примечание.
Имена на этом рисунке являются заполнителями. Имена html-ресурса и интерфейсов, предоставляемых в элементе управления, основаны на именах, назначенных им в мастере управления ATL.
На этом рисунке элементы:
Библиотека DLL , созданная с помощью мастера проектов ATL.
Элемент управления DHTML (
m_spBrowser
) Элемент управления DHTML, созданный с помощью мастера объектов ATL. Этот элемент управления обращается к объекту веб-браузера и его методам через интерфейс объекта веб-браузера.IWebBrowser2
Сам элемент управления предоставляет следующие два интерфейса в дополнение к другим стандартным интерфейсам, необходимым для элемента управления.IDHCTL1
Интерфейс, предоставляемый элементом управления для использования только контейнером.IDHCTLUI1
Интерфейс отправки для обмена данными между кодом C++ и пользовательским интерфейсом HTML. В веб-браузере для отображения элемента управления используется интерфейс диспетчера элемента управления. Можно вызвать различные методы этого интерфейса диспетчера из пользовательского интерфейса элемента управления, вызвавwindow.external
имя метода в этом интерфейсе диспетчера, который требуется вызвать. Вы будете получать доступwindow.external
из тега SCRIPT в HTML, который состоит из пользовательского интерфейса для этого элемента управления. Дополнительные сведения о вызове внешних методов в файле ресурсов см. в статье "Вызов кода C++ из DHTML".
IDR_CTL1 Идентификатор ресурса HTML. Его имя файла, в данном случае, DHCTL1UI.htm. Элемент управления DHTML использует html-ресурс, содержащий стандартные HTML-теги и команды отправки внешнего окна, которые можно изменить с помощью текстового редактора.
Веб-браузер Веб-браузер отображает пользовательский интерфейс элемента управления на основе HTML-ресурса. Указатель на интерфейс веб-браузера
IWebBrowser2
доступен в элементе управления DHTML, чтобы разрешить доступ к объектной модели DHTML.
Мастер управления ATL создает элемент управления с кодом по умолчанию как в HTML-ресурсе, так и в файле .cpp. Вы можете скомпилировать и запустить элемент управления, созданный мастером, а затем просмотреть элемент управления в веб-браузере или контейнере тестов activeX. На рисунке ниже показан элемент управления ATL DHTML по умолчанию с тремя кнопками, отображаемыми в тестовом контейнере:
См. статью "Создание элемента управления DHTML ATL", чтобы приступить к созданию элемента управления DHTML. Сведения о доступе к тестовой контейнере см. в разделе "Свойства и события тестирования" с помощью тестового контейнера .