Compartir a través de


Colocar el control en una página web (Tutorial de ATL, Parte 7)

El control ya está terminado. Para ver el funcionamiento del control en una situación real, colóquelo en una página web. Un archivo HTML que contiene el control se creó al definirlo. Abra el archivo PolyCtl.htm desde el Explorador de soluciones y podrá ver el control en una página web.

En este paso, agregará funcionalidad al control y al script de la página web para responder a eventos. También modificará el control para que Internet Explorer sepa que el control es seguro para el scripting.

Adición de una funcionalidad nueva

Para agregar características de control

Abra PolyCtl.cpp y reemplace el código siguiente:

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

con

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

La forma ahora agregará o quitará lados en función de dónde haga clic.

Creación de scripts de la página web

El control aún no hace nada, por lo que tiene que cambiar la página web para que responda a los eventos que envía.

Para crear scripts de la página web

  1. Abra PolyCtl.htm y seleccione Vista HTML. Agregue las líneas siguientes al código HTML. Se deben agregar después de </OBJECT>, pero antes de </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. Guarde el archivo HTM.

Ha agregado código VBScript que obtiene la propiedad Lados del control. Aumenta el número de lados en uno si hace clic dentro del control. Si hace clic fuera del control, reduce el número de lados en uno.

Indicación de que el control es seguro para scripting

Solo puede ver la página web con el control en Internet Explorer. Otros exploradores ya no admiten controles ActiveX debido a puntos débiles de seguridad.

Nota:

Si el control no está visible, tenga en cuanta que algunos exploradores requieren ajustes de configuración para ejecutar controles ActiveX. Consulte la documentación del explorador sobre cómo habilitar controles ActiveX.

En función de la configuración de seguridad actual de Internet Explorer, puede recibir un cuadro de diálogo de Alerta de seguridad. Indica que es posible que el control no sea seguro para generar scripts y que podría causar daños. Por ejemplo, si tuviera un control que mostrara un archivo, pero también tuviera un método Delete que eliminó un archivo, sería seguro si lo acabara de ver en una página. Pero no sería seguro incluir scripts, ya que alguien podría llamar al método Delete.

Importante

En este tutorial, puede cambiar la configuración de seguridad en Internet Explorer para ejecutar controles ActiveX que no están marcados como seguros. En el Panel de control, haga clic en Propiedades de Internet y después en Seguridad para cambiar la configuración adecuada. Cuando haya completado el tutorial, vuelva a cambiar la configuración de seguridad a su estado original.

Puede alertar mediante programación a Internet Explorer de que no es necesario mostrar el cuadro de diálogo Alerta de seguridad para este control en particular. Puede hacerlo mediante la interfaz IObjectSafety. ATL proporciona una implementación de esta interfaz en la clase IObjectSafetyImpl. Para agregar la interfaz al control, agregue IObjectSafetyImpl a la lista de clases heredadas y agréguele una entrada en la asignación COM.

Para agregar IObjectSafetyImpl al control

  1. Agregue la siguiente línea al final de la lista de clases heredadas en PolyCtl.h y agregue una coma a la línea anterior:

    public IObjectSafetyImpl<CPolyCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>
    
  2. Agregue la siguiente línea a la asignación COM en PolyCtl.h:

    COM_INTERFACE_ENTRY(IObjectSafety)
    

Compilar y probar el control

Compile el control. Una vez finalizada la compilación, vuelva a abrir PolyCtl.htm en la vista del explorador. Esta vez, la página web debería mostrarse directamente sin el cuadro de diálogo Alerta de seguridad. Si hace clic dentro del polígono, el número de lados aumenta en uno. Haga clic fuera del polígono para reducir el número de lados.

Volver al paso 6

Pasos siguientes

Con este paso concluye el tutorial de ATL. Para obtener vínculos a más información sobre ATL, consulte la página de inicio de ATL.

Consulte también

Tutorial