Udostępnij za pośrednictwem


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.

Diagram elementów projektu kontrolki DHTML.

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ąc window.externalmetodę , 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:

Kontrolka DHTML ATL.

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.

Zobacz też

Obsługa formantu DHTML