Identificación de los elementos del proyecto de control DHTML
La mayoría del código de control DHTML es exactamente igual al creado para cualquier control ATL. Para obtener una comprensión básica del código genérico, trabaje con el tutorial de ATL y lea las secciones Creación de un proyecto ATL y Aspectos básicos de objetos COM de ATL.
Un control DHTML es similar a cualquier control ATL, excepto:
Además de las interfaces normales que implementa un control, este implementa una interfaz adicional que se usa para comunicarse entre el código de C++ y la interfaz de usuario (UI) HTML. La interfaz de usuario HTML llama al código de C++ mediante esta interfaz.
Crea un recurso HTML para la interfaz de usuario de control.
Permite el acceso al modelo de objetos DHTML a través de la variable miembro
m_spBrowser
, que es un puntero inteligente de tipo IWebBrowser2. Use este puntero para acceder a cualquier parte del modelo de objetos DHTML.
En el gráfico siguiente se muestra la relación entre el archivo DLL, el control DHTML, el explorador web y el recurso HTML.
Nota:
Los nombres de este gráfico son marcadores de posición. Los nombres del recurso HTML y las interfaces expuestas en el control se basan en los nombres que se les asignen en el Asistente para controles ATL.
En este gráfico, los elementos son:
Mi DLL la DLL creada usa el asistente para proyectos ATL.
Control DHTML (
m_spBrowser
) El control DHTML, creado con el asistente para objetos ATL. Este control accede al objeto del explorador web y a sus métodos a través de la interfaz del objeto del explorador web,IWebBrowser2
. El propio control expone las dos interfaces siguientes, además de las demás interfaces estándar necesarias para un control.IDHCTL1
La interfaz expuesta por el control solo para su uso por parte del contenedor.IDHCTLUI1
Interfaz de distribución para comunicarse entre el código de C++ y la interfaz de usuario HTML. El explorador web usa la interfaz de distribución del control para mostrar el control. Se pueden llamar a varios métodos de esta interfaz de distribución desde la interfaz de usuario del control invocandowindow.external
, seguido del nombre del método en esta interfaz de distribución que desea invocar. Se tendría acceso awindow.external
desde una etiqueta SCRIPT dentro del CÓDIGO HTML que compone la interfaz de usuario para este control. Para obtener más información sobre cómo invocar los métodos externos en el archivo de recursos, consulte Llamar a código de C++ desde DHTML.
IDR_CTL1 Identificador de recurso del recurso HTML. Su nombre de archivo, en este caso, es DHCTL1UI.htm. El control DHTML usa un recurso HTML que contiene etiquetas HTML estándar y comandos de distribución de ventanas externas que se pueden editar mediante el editor de texto.
Explorador web El explorador web muestra la interfaz de usuario del control, en función del código HTML del recurso HTML. Hay disponible un puntero a la interfaz
IWebBrowser2
del explorador web en el control DHTML para permitir el acceso al modelo de objetos DHTML.
El Asistente para controles ATL genera un control con código predeterminado tanto en el recurso HTML como en el archivo .cpp. Se puede compilar y ejecutar el control según lo generado por el asistente y, a continuación, ver el control en el explorador web o en el contenedor de pruebas de control ActiveX. En la imagen siguiente se muestra el control ATL DHTML predeterminado con tres botones que se muestran en el contenedor de pruebas:
Consulte Creación de un control DHTML ATL para empezar a crear un control DHTML. Consulte Probar propiedades y eventos con un contenedor de prueba para obtener información sobre cómo acceder a un Contenedor de prueba.