Platzieren des Steuerelements auf einer Webseite (ATL-Lernprogramm, Teil 7)
Das Steuerelement ist jetzt fertig. Um zu sehen, wie das Steuerelement in einer realen Situation funktioniert, platzieren Sie es auf einer Webseite. Eine HTML-Datei, die das Steuerelement enthält, wurde erstellt, als Sie das Steuerelement definiert haben. Öffnen Sie die Datei PolyCtl.htm aus Projektmappen-Explorer, und Sie können Ihr Steuerelement auf einer Webseite anzeigen.
In diesem Schritt fügen Sie dem Steuerelement und skript der Webseite Funktionen hinzu, um auf Ereignisse zu reagieren. Sie ändern das Steuerelement auch, um Internet Explorer mitzuteilen, dass das Steuerelement für skriptsicher ist.
Hinzufügen neuer Funktionen
So fügen Sie Steuerelementfeatures hinzu
Öffnen Sie PolyCtl.cpp, und ersetzen Sie den folgenden Code:
if (PtInRegion(hRgn, xPos, yPos))
Fire_ClickIn(xPos, yPos);
else
Fire_ClickOut(xPos, yPos);
durch
short temp = m_nSides;
if (PtInRegion(hRgn, xPos, yPos))
{
Fire_ClickIn(xPos, yPos);
put_Sides(++temp);
}
else
{
Fire_ClickOut(xPos, yPos);
put_Sides(--temp);
}
Je nachdem, wo Sie klicken, wird das Shape jetzt Seiten hinzufügen oder entfernen.
Skripterstellung für die Webseite
Das Steuerelement tut noch nichts. Ändern Sie daher die Webseite, um auf die von Ihnen gesendeten Ereignisse zu reagieren.
Zur Skripterstellung für die Webseite
Öffnen Sie PolyCtl.htm und wählen Sie die HTML-Ansicht aus. Fügen Sie dem HTML-Code die folgenden Zeilen hinzu. Sie sollten nach
</OBJECT>
und vor</BODY>
hinzugefügt werden.<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>
Speichern Sie die HTM-Datei.
Sie haben einen VBScript-Code hinzugefügt, der die Sides-Eigenschaft aus dem Steuerelement abruft. Sie erhöht die Anzahl der Seiten um eine Seite, wenn Sie innerhalb des Steuerelements klicken. Wenn Sie außerhalb des Steuerelements klicken, reduzieren Sie die Anzahl der Seiten um eine.
Angeben, dass das Steuerelement für die Skripterstellung sicher ist
Sie können die Webseite nur mit dem Steuerelement in Internet Explorer anzeigen. Andere Browser unterstützen ActiveX-Steuerelemente aufgrund von Sicherheitsschwächen nicht mehr.
Hinweis
Wenn das Steuerelement nicht sichtbar ist, wissen Sie, dass einige Browser Einstellungen anpassen müssen, um ActiveX-Steuerelemente auszuführen. Informationen zum Aktivieren von ActiveX-Steuerelementen finden Sie in der Dokumentation des Browsers.
Basierend auf Ihren aktuellen Internet Explorer-Sicherheitseinstellungen erhalten Sie möglicherweise ein Dialogfeld "Sicherheitswarnung". Es gibt an, dass das Steuerelement möglicherweise nicht sicher für Skripts ist und potenziell Schäden verursachen könnte. Wenn Sie beispielsweise ein Steuerelement hätten, das eine Datei anzeigen würde, aber auch eine Delete
-Methode hätte, die eine Datei löscht, wäre es sicher, wenn es nur auf der Seite angezeigt würde. Es wäre aber nicht sicher für die Skriptausführung, denn jemand könnte die Delete
-Methode aufrufen.
Wichtig
Für dieses Lernprogramm können Sie die Sicherheitseinstellungen in Internet Explorer ändern, um ActiveX-Steuerelemente auszuführen, die nicht als sicher gekennzeichnet sind. Klicken Sie in Systemsteuerung auf "Interneteigenschaften", und klicken Sie auf "Sicherheit", um die entsprechenden Einstellungen zu ändern. Wenn Sie das Lernprogramm abgeschlossen haben, ändern Sie die Sicherheitseinstellungen zurück zu ihrem ursprünglichen Zustand.
Sie können Internet Explorer programmgesteuert benachrichtigen, dass das Dialogfeld "Sicherheitswarnung" für dieses bestimmte Steuerelement nicht angezeigt werden muss. Sie können dies über die IObjectSafety
Schnittstelle tun. ATL stellt eine Implementierung dieser Schnittstelle in der Klasse IObject Tresor tyImpl. Um die Schnittstelle zu Ihrem Steuerelement hinzuzufügen, fügen Sie IObjectSafetyImpl
ihrer Liste der geerbten Klassen hinzu, und fügen Sie einen Eintrag für sie in Ihrer COM-Zuordnung hinzu.
So fügen Sie IObjectSafetyImpl dem Steuerelement hinzu
Fügen Sie die folgende Zeile dem Ende der Liste geerbter Klassen in PolyCtl.h hinzu, und fügen Sie der vorherigen Zeile ein Komma hinzu:
public IObjectSafetyImpl<CPolyCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>
Fügen Sie die folgende Zeile der COM-Zuordnung in PolyCtl.h hinzu:
COM_INTERFACE_ENTRY(IObjectSafety)
Erstellen und Testen des Steuerelements
Erstellen Sie das Steuerelement. Sobald der Buildvorgang abgeschlossen ist, öffnen Sie wieder PolyCtl.htm in der Browseransicht. Dieses Mal sollte die Webseite direkt ohne das Dialogfeld Tresor ty Alert angezeigt werden. Wenn Sie innerhalb des Polygons klicken, nimmt die Anzahl der Seiten um eins zu. Klicken Sie außerhalb des Polygons, um die Anzahl der Seiten zu verringern.
Nächste Schritte
Dieser Schritt schließt das ATL-Lernprogramm ab. Links zu weiteren Informationen zu ATL finden Sie auf der ATL-Startseite.