Identyfikowanie elementów projektu kontrolki DHTML
Większość kodu sterującego DHTML jest dokładnie taka, jak utworzona dla dowolnej kontrolki ATL. Aby uzyskać podstawową wiedzę na temat kodu ogólnego, zapoznaj się z samouczkiem ATL i zapoznaj się z sekcjami Creating an ATL Project and Fundamentals of ATL COM Objects (Tworzenie projektu ATL i podstaw obiektów COM ATL).
Kontrolka DHTML jest podobna do dowolnej kontrolki ATL, z wyjątkiem:
Oprócz zwykłych interfejsów implementuje kontrolkę, implementuje dodatkowy interfejs używany do komunikacji między kodem C++ a interfejsem użytkownika HTML. Interfejs użytkownika HTML wywołuje kod C++ przy użyciu tego interfejsu.
Tworzy zasób HTML dla interfejsu użytkownika kontrolki.
Umożliwia dostęp do modelu obiektów DHTML za pośrednictwem zmiennej składowej
m_spBrowser
, która jest inteligentnym wskaźnikiem typu IWebBrowser2. Użyj tego wskaźnika, aby uzyskać dostęp do dowolnej części modelu obiektów DHTML.
Poniższa grafika przedstawia relację między biblioteką DLL, kontrolką DHTML, przeglądarką internetową i zasobem HTML.
Uwaga
Nazwy na tej grafice są symbolami zastępczymi. Nazwy zasobu HTML i interfejsy uwidocznione w kontrolce są oparte na nazwach, które przypisujesz w Kreatorze kontrolek ATL.
Na tej grafice elementy to:
Moja biblioteka DLL biblioteka DLL utworzona przy użyciu Kreatora projektu ATL.
Kontrolka DHTML (
m_spBrowser
) Kontrolka DHTML utworzona przy użyciu Kreatora obiektów ATL. Ta kontrolka uzyskuje dostęp do obiektu przeglądarki sieci Web i jego metod za pośrednictwem interfejsu obiektu przeglądarki sieci Web.IWebBrowser2
Sama kontrolka uwidacznia następujące dwa interfejsy, oprócz innych standardowych interfejsów wymaganych dla kontrolki.IDHCTL1
Interfejs udostępniany przez kontrolkę do użycia tylko przez kontener.IDHCTLUI1
Interfejs wysyłania do komunikacji między kodem C++ a interfejsem użytkownika HTML. Przeglądarka sieci Web używa interfejsu wysyłania kontrolki do wyświetlania kontrolki. Można wywołać różne metody tego interfejsu wysyłania z interfejsu użytkownika kontrolki, wywołującwindow.external
metodę , a następnie nazwę metody w tym interfejsie wysyłania, który chcesz wywołać. Dostęp można uzyskaćwindow.external
z tagu SCRIPT w kodzie HTML, który tworzy interfejs użytkownika dla tej kontrolki. Aby uzyskać więcej informacji na temat wywoływania metod zewnętrznych w pliku zasobów, zobacz Wywoływanie kodu C++ z DHTML.
IDR_CTL1 Identyfikator zasobu HTML. W tym przypadku jego nazwa pliku jest DHCTL1UI.htm. Kontrolka DHTML używa zasobu HTML zawierającego standardowe tagi HTML i polecenia wysyłania okien zewnętrznych, które można edytować za pomocą edytora tekstów.
Przeglądarka internetowa Przeglądarka internetowa wyświetla interfejs użytkownika kontrolki na podstawie kodu HTML w zasobie HTML. Wskaźnik do interfejsu przeglądarki
IWebBrowser2
internetowej jest dostępny w kontrolce DHTML, aby umożliwić dostęp do modelu obiektów DHTML.
Kreator kontrolek ATL generuje kontrolkę z domyślnym kodem zarówno w zasobie HTML, jak i w pliku .cpp. Możesz skompilować i uruchomić kontrolkę wygenerowaną przez kreatora, a następnie wyświetlić kontrolkę w przeglądarce internetowej lub kontenerze testów kontrolek ActiveX. Na poniższej ilustracji przedstawiono domyślną kontrolkę DHTML ATL z trzema przyciskami wyświetlanymi w kontenerze testowym:
Zobacz Tworzenie kontrolki DHTML ATL, aby rozpocząć tworzenie kontrolki DHTML. Aby uzyskać informacje na temat uzyskiwania dostępu do kontenera testowego, zobacz Testowanie właściwości i zdarzeń za pomocą kontenera testowego.