Un control DHTML es similar a cualquier control ATL, excepto:
Además de las regulares interfaces que implementa un control, implementa una interfaz adicional que se utiliza para la comunicación entre el código de C++ y la interfaz de usuario (IU) de HTML. La interfaz de usuario HTML llama al código de C++ mediante esta interfaz.
Crea un recurso HTML para el control de interfaz de usuario.
Permite el acceso al modelo de objetos DHTML a través de la variable miembro m_spBrowser , que es un puntero inteligente del tipo IWebBrowser2. Utilice este puntero para acceder a cualquier parte del modelo de objetos DHTML.
Examen de los elementos del proyecto de control DHTML
El gráfico siguiente ilustra la relación entre el archivo DLL, el control DHTML, el navegador web y el recurso HTML.
&Notanbsp; Los nombres de este gráfico son marcadores de posición. Los nombres de las interfaces expuestas en su control y su recurso HTML se basan en los nombres que se les asigne en el Asistente para objetos ATL.
En este gráfico, los elementos son:
DLL mi El archivo DLL creada usando el Asistente para aplicaciones.
Co&ntrol DHTML ( m_spBrowser ) nbsp; El control DHTML, creado mediante el Asistente para objetos ATL. Este control tiene acceso a objeto de navegador de web y sus métodos a través de la interfaz del objeto de navegador de web, IWebBrowser2. El propio control expone las siguientes dos interfaces, además de otras interfaces estándar requeridas para un control.
IDHCTL1 La interfaz expuesta por el control para su uso únicamente por el contenedor.
IDHCTLUI1 La interfaz de envío para la comunicación entre el código de C++ y la interfaz de usuario HTML. El explorador web utiliza la interfaz de envío del control para mostrar el control. Puede llamar a diversos métodos de esta interfaz de envío desde la interfaz de usuario del control invocando window.external , seguido por el nombre del método en esta interfaz de envío que desea invocar. Acceder a window.external de una etiqueta SCRIPT en el código HTML que componen la interfaz de usuario para este control. Para obtener más información acerca de invocar métodos externos en el archivo de recursos, vea Llamar A código C++ desde DHTML.
IDR_CTL1 El identificador de recurso del recurso HTML. Su nombre de archivo, en este caso, es DHCTL1UI.htm. El control DHTML utiliza un recurso HTML que contiene comandos de envío de ventana externa que se pueden editar mediante el editor de texto y etiquetas HTML estándar.
&Navegador Webnbsp; El navegador web muestra la interfaz de usuario del control, basado en el código HTML en el recurso HTML. Un puntero a la interfaz de IWebBrowser2 del navegador web está disponible en el control DHTML para permitir el acceso al modelo de objetos DHTML.
El Asistente para objetos ATL genera un control con código predeterminado en el recurso HTML y el archivo .cpp. Puede compilar y ejecutar el control, que es generado por el asistente y, a continuación, ver el control en el navegador o el contenedor de prueba. La imagen siguiente muestra el valor por defecto el control DHTML ATL con tres botones que se muestran en el contenedor de prueba: