Sdílet prostřednictvím


Vložení ovládacího prvku na webovou stránku (ATL – tutoriál, část 7)

Váš ovládací prvek je teď hotový. Pokud chcete vidět svou kontrolu v reálné situaci, umístěte ji na webovou stránku. Soubor HTML, který obsahuje ovládací prvek, byl vytvořen při definování ovládacího prvku. Otevřete soubor PolyCtl.htm z Průzkumník řešení a ovládací prvek můžete zobrazit na webové stránce.

V tomto kroku přidáte do ovládacího prvku funkci a skriptujete webovou stránku pro reakci na události. Ovládací prvek upravíte tak, aby aplikace Internet Explorer věděla, že je ovládací prvek bezpečný pro skriptování.

Přidání nových funkcí

Přidání ovládacích funkcí

Otevřete PolyCtl.cpp a nahraďte následující kód:

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);
}

Obrazec teď přidá nebo odebere strany v závislosti na tom, kde kliknete.

Skriptování webové stránky

Ovládací prvek zatím nic nedělá, takže změňte webovou stránku tak, aby reagovala na události, které odesíláte.

Skriptování webové stránky

  1. Otevřete PolyCtl.htm a vyberte zobrazení HTML. Do kódu HTML přidejte následující řádky. Měly by být přidány po </OBJECT> , ale před </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. Uložte soubor HTM.

Přidali jste kód VBScriptu, který získá vlastnost Sides z ovládacího prvku. Pokud kliknete do ovládacího prvku, zvýší se počet stran o jednu stranu. Pokud kliknete mimo ovládací prvek, snížíte počet stran o jednu.

Indikující, že ovládací prvek je bezpečný pro skriptování

Webovou stránku můžete zobrazit pouze pomocí ovládacího prvku v Internet Exploreru. Ostatní prohlížeče už nepodporují ovládací prvky ActiveX kvůli slabým stránkám zabezpečení.

Poznámka:

Pokud ovládací prvek není viditelný, nezapomeňte, že některé prohlížeče vyžadují úpravy nastavení pro spuštění ovládacích prvků ActiveX. Informace o povolení ovládacích prvků ActiveX najdete v dokumentaci prohlížeče.

Na základě aktuálního nastavení zabezpečení aplikace Internet Explorer se může zobrazit dialogové okno Výstraha zabezpečení. Uvádí, že ovládací prvek nemusí být bezpečný pro skriptování a může potenciálně způsobit poškození. Pokud jste například měli ovládací prvek, který zobrazil soubor, ale měl také metodu Delete , která odstranila soubor, bylo by bezpečné, kdybyste ho právě zobrazili na stránce. Skriptování by však nebylo bezpečné, protože někdo by mohl metodu Delete zavolat.

Důležité

V tomto kurzu můžete změnit nastavení zabezpečení v Internet Exploreru tak, aby spouštěly ovládací prvky ActiveX, které nejsou označené jako bezpečné. V Ovládací panely klepněte na tlačítko Vlastnosti internetu a klepněte na tlačítko Zabezpečení změnit odpovídající nastavení. Po dokončení kurzu změňte nastavení zabezpečení zpět na původní stav.

Internet Explorer můžete programově upozornit, že pro tento konkrétní ovládací prvek nemusí zobrazovat dialogové okno Výstraha zabezpečení. Můžete to udělat pomocí IObjectSafety rozhraní. ATL poskytuje implementaci tohoto rozhraní ve třídě IObjectSafetyImpl. Pokud chcete do ovládacího prvku přidat rozhraní, přidejte IObjectSafetyImpl do seznamu zděděných tříd a do mapy COM přidejte položku.

Přidání IObjectSafetyImpl do ovládacího prvku

  1. Na konec seznamu zděděných tříd v PolyCtl.h přidejte čárku na předchozí řádek:

    public IObjectSafetyImpl<CPolyCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>
    
  2. Do mapy COM v PolyCtl.h přidejte následující řádek:

    COM_INTERFACE_ENTRY(IObjectSafety)
    

Sestavení a testování ovládacího prvku

Sestavte ovládací prvek. Po dokončení sestavení znovu otevřete PolyCtl.htm v zobrazení prohlížeče. Tentokrát by se webová stránka měla zobrazit přímo bez dialogového okna Bezpečnostní výstraha. Pokud kliknete do mnohoúhelníku, počet stran se zvýší o jednu. Kliknutím mimo mnohoúhelník zmenšete počet stran.

Zpět ke kroku 6

Další kroky

Tento krok uzavírá kurz ATL. Odkazy na další informace o ATL najdete na úvodní stránce ATL.

Viz také

Kurz