Udostępnij za pośrednictwem


Umieszczanie kontrolki na stronie sieci Web (ALT — Samouczek, część 7)

Kontrolka została zakończona. Aby zobaczyć swoją pracę kontrolną w rzeczywistej sytuacji, umieść ją na stronie internetowej. Plik HTML zawierający kontrolkę został utworzony podczas definiowania kontrolki. Otwórz plik PolyCtl.htm z Eksplorator rozwiązań i możesz wyświetlić kontrolkę na stronie sieci Web.

W tym kroku dodasz funkcje do kontrolki i skryptu strony sieci Web w celu reagowania na zdarzenia. Zmodyfikujesz również kontrolkę, aby poinformować program Internet Explorer, że kontrolka jest bezpieczna do obsługi skryptów.

Dodawanie nowych funkcji

Aby dodać funkcje sterowania

Otwórz PolyCtl.cpp i zastąp następujący kod:

if (PtInRegion(hRgn, xPos, yPos))
  Fire_ClickIn(xPos, yPos);
else
  Fire_ClickOut(xPos, yPos);

with

short temp = m_nSides;
if (PtInRegion(hRgn, xPos, yPos))
{
  Fire_ClickIn(xPos, yPos);
  put_Sides(++temp);
}
else
{
  Fire_ClickOut(xPos, yPos);
  put_Sides(--temp);
}

Kształt będzie teraz dodawać lub usuwać boki w zależności od tego, gdzie klikniesz.

Wykonywanie skryptów na stronie sieci Web

Kontrolka jeszcze nic nie robi, więc zmień stronę sieci Web, aby odpowiadała na wysyłane zdarzenia.

Aby uruchomić skrypt strony sieci Web

  1. Otwórz PolyCtl.htm i wybierz widok HTML. Dodaj następujące wiersze do kodu HTML. Należy je dodać po </OBJECT> , ale przed </BODY>.

    <SCRIPT LANGUAGE="VBScript">
    <!--
        Sub PolyCtl_ClickIn(x, y)
            MsgBox("Clicked (" & x & ", " & y & ") - adding side")
        End Sub
        Sub PolyCtl_ClickOut(x, y)
            MsgBox("Clicked (" & x & ", " & y & ") - removing side")
        End Sub
    -->
    </SCRIPT>
    
  2. Zapisz plik HTM.

Dodano kod VBScript, który pobiera właściwość Sides z kontrolki. Zwiększa liczbę boków po jednej, jeśli klikniesz wewnątrz kontrolki. Jeśli klikniesz kontrolkę poza kontrolką, zmniejszysz liczbę boków o jedną.

Wskazuje, że kontrolka jest bezpieczna dla skryptów

Stronę internetową można wyświetlić tylko za pomocą kontrolki w programie Internet Explorer. Inne przeglądarki nie obsługują już kontrolek ActiveX z powodu słabych stron zabezpieczeń.

Uwaga

Jeśli kontrolka nie jest widoczna, należy wiedzieć, że niektóre przeglądarki wymagają korekt ustawień do uruchamiania kontrolek ActiveX. Zapoznaj się z dokumentacją przeglądarki dotyczącą włączania kontrolek ActiveX.

Na podstawie bieżących ustawień zabezpieczeń programu Internet Explorer może zostać wyświetlone okno dialogowe Alert zabezpieczeń. Stwierdza, że kontrola może nie być bezpieczna dla skryptu i może spowodować uszkodzenie. Jeśli na przykład masz kontrolkę, która wyświetlała plik, ale także Delete metodę, która usunęła plik, byłoby to bezpieczne, jeśli po prostu wyświetliłeś go na stronie. Skrypt nie byłby jednak bezpieczny, ponieważ ktoś mógł wywołać metodę Delete .

Ważne

Na potrzeby tego samouczka możesz zmienić ustawienia zabezpieczeń w programie Internet Explorer, aby uruchamiać kontrolki ActiveX, które nie są oznaczone jako bezpieczne. W Panel sterowania kliknij pozycję Właściwości internetowe i kliknij pozycję Zabezpieczenia, aby zmienić odpowiednie ustawienia. Po ukończeniu samouczka zmień ustawienia zabezpieczeń z powrotem na ich oryginalny stan.

Programowo można powiadamiać program Internet Explorer, że nie musi wyświetlać okna dialogowego Alert zabezpieczeń dla tej konkretnej kontrolki. Można to zrobić za pomocą interfejsu IObjectSafety . AtL dostarcza implementację tego interfejsu w klasie IObjectSafetyImpl. Aby dodać interfejs do kontrolki, dodaj IObjectSafetyImpl do listy dziedziczone klasy i dodaj wpis dla niego na mapie MODELU COM.

Aby dodać element IObjectSafetyImpl do kontrolki

  1. Dodaj następujący wiersz na końcu listy odziedziczonych klas w pliku PolyCtl.h i dodaj przecinek do poprzedniego wiersza:

    public IObjectSafetyImpl<CPolyCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>
    
  2. Dodaj następujący wiersz do mapy COM w pliku PolyCtl.h:

    COM_INTERFACE_ENTRY(IObjectSafety)
    

Kompilowanie i testowanie kontrolki

Skompiluj kontrolkę. Po zakończeniu kompilacji otwórz ponownie PolyCtl.htm w widoku przeglądarki. Tym razem strona sieci Web powinna być wyświetlana bezpośrednio bez okna dialogowego Alert bezpieczeństwa. Jeśli klikniesz wewnątrz wielokąta, liczba stron wzrośnie o jeden. Kliknij poza wielokąt, aby zmniejszyć liczbę boków.

Powrót do kroku 6

Następne kroki

Ten krok kończy samouczek ATL. Aby uzyskać linki do dodatkowych informacji na temat atl, zobacz stronę początkową ATL.

Zobacz też

Samouczek