Controles ActiveX de MFC
Un control ActiveX es un componente de software reutilizable, basado en el modelo de objetos componentes (COM), que admite una gran variedad de funciones OLE y se puede personalizar de modo que se adapte a las necesidades del software.Los controles ActiveX están diseñados para el uso en contenedores de controles ActiveX ordinarios como en internet, en páginas de World Wide Web.Puede crear controles ActiveX con MFC, descrita aquí, o con Active Template Library (ATL).
Un control ActiveX puede dibujarse a sí mismo en su propia ventana, responde a los eventos (como los clics), y se administra a través de una interfaz que incluye las propiedades y los métodos similares a las de objetos de automatización.
Estos controles se pueden desarrollar para muchos usos, por ejemplo acceso a bases de datos, la supervisión de los datos, o la representación gráfica gráficamente.Además de las características admiten la portabilidad, los controles ActiveX previamente no están disponibles para los controles ActiveX, como compatibilidad con contenedores existentes OLE y la capacidad de integrar los menús con menús de contenedor OLE.Además, un control ActiveX admite totalmente la automatización, que permite el control a la exposición leída \ a propiedades de escritura y un conjunto de métodos que se pueden llamar el usuario del control.
Puede crear controles ActiveX sin ventana y los controles que crean una sola ventana cuando pasan a ser activo.Los controles sin ventana aceleran la presentación de la aplicación y permiten tener controles transparente y rectangular.También puede cargar propiedades de controles ActiveX de forma asincrónica.
Un control ActiveX se implementa como un servidor en proceso (normalmente un objeto) que se puede utilizar en cualquier contenedor OLE.Observe que la funcionalidad completa de un control ActiveX solo está disponible cuando se utiliza dentro de un contenedor OLE diseñado para conocer los controles ActiveX.Vea Controles ActiveX de puerto a aplicaciones de Otros para una lista de contenedores que los controles ActiveX admiten.Este tipo de contenedor, en lo sucesivo denominado “contenedor,” puede operar un control ActiveX con las propiedades y métodos del control, y recibe notificaciones de controles ActiveX en forma de eventos.La ilustración siguiente se muestra esta interacción.
Interacción entre un contenedor de controles ActiveX y un control ActiveX con ventanas
Para alguna información reciente en optimizar los controles ActiveX, vea Controles ActiveX de MFC: optimización.
Para crear un control ActiveX de MFC, vea Cree un proyecto de control ActiveX.
Para obtener más información, vea:
Componentes básicos de un control ActiveX
Un control ActiveX utiliza varios elementos de programación para interactuar eficazmente con un contenedor de controles y con el usuario.Éstas son clase COleControl, conjunto de funciones de la evento-despedida, y un mapa de envío.
Cada objeto de control ActiveX que desarrolle hereda un conjunto eficaz de características de la clase base de MFC, COleControl.Estas características incluyen la activación en contexto, y la lógica de automatización.COleControl puede proporcionar el objeto de control con la misma funcionalidad que un objeto de la ventana de MFC, más la capacidad de desencadenar eventos.COleControl también puede proporcionar controles sin ventana, que se basan en el contenedor para obtener ayuda con algunas funcionalidades que una ventana proporciona (captura del mouse, el foco de teclado, desplazándose), pero una pantalla mucho más rápida de la propuesta.
Dado que la clase control deriva de COleControl, hereda la capacidad de enviar, o “desencadena”, los mensajes, denominados eventos, el contenedor del control cuando se cumplan ciertas condiciones.Estos eventos se usan para notificar al contenedor del control cuando algo importante ocurre en el control.Puede enviar información adicional sobre un evento al contenedor de controles asociando parámetros al evento.Para obtener más información acerca de los eventos de control ActiveX, vea el artículo Controles ActiveX de MFC: Eventos.
El último elemento es un mapa de distribución, que se utiliza para exponer un conjunto de funciones (denominadas métodos) y atributos (denominados propiedades) al usuario del control.Las propiedades permiten que el contenedor del control o el usuario del control manipular el control de varias maneras.El usuario puede cambiar el aspecto del control, cambiar algunos valores del control, o hacer las solicitudes del control, como acceso de una parte específica de datos que el control mantenga.Esta interfaz está determinada por el programador de controles y se define mediante Vista de clases.Para obtener más información sobre métodos y propiedades de controles ActiveX, vea los artículos Controles ActiveX de MFC: métodos y Propiedades.
Controles de entre la interacción con Windows y contenedores de controles ActiveX
Cuando un control se utiliza dentro de un contenedor, utiliza dos mecanismos para la comunicación: expone propiedades y métodos, y desencadena eventos.La ilustración siguiente se muestra cómo se implementan los dos mecanismos.
Comunicación entre un contendor de controles ActiveX y un control ActiveX
En la ilustración anterior se muestra también cómo otras interfaces VIEJAS (además de automatización y eventos) se controlan mediante los controles.
Toda la comunicación de un control con el contenedor realiza COleControl.Para controlar algunas de las solicitudes de contenedor, COleControl llama a las funciones miembro que se implementan en la clase del control.Todos los métodos y algunas propiedades se controlan de esta manera.La clase del control también puede iniciar la comunicación con el contenedor llamando a funciones miembro de COleControl.Los eventos se desencadenan de esta manera.
Estados activos y inactivas de un control ActiveX
Un control tiene dos estados básicos: activo y inactivo.Tradicionalmente, distinguieron a estos estados por si el control tiene una ventana.Un control activo tenía una ventana; un control inactivo no tenía.Con la introducción de activación sin ventana, esta distinción ya no universal, pero sigue aplicándose a muchos controles.
Cuando va control sin ventana activo, invoca la captura del mouse, el foco de teclado, el desplazamiento, y otros servicios de la ventana de su contenedor.También puede proporcione la interacción con el mouse a controles inactivos, así como crear controles que espere hasta que se genera para crear una ventana.
Cuando un control con una ventana se activa, puede interactuar completamente con el contenedor, el usuario, y Windows.La ilustración siguiente muestra las rutas de comunicación entre el control ActiveX, el contenedor, y el sistema operativo.
Procesamiento de mensajes de ventanas en un control ActiveX con ventanas (cuando esté activo)
Serialización
La capacidad de serializar los datos, lo que a veces persistencia, permite al control escriba el valor de las propiedades al almacenamiento persistente.Los Controles pueden ser entonces reconstruidas leyendo el estado del objeto del almacenamiento.
Tenga en cuenta que un control no es responsable de obtener acceso al soporte de almacenamiento.En su lugar, el contenedor del control es responsable de proveer de control un medio de almacenamiento se use en los tiempos adecuados.Para obtener más información sobre serialización, vea el artículo Controles ActiveX de MFC: Serializar.Para obtener información sobre cómo optimizar la serialización, vea optimizar Persistence y la inicialización en Controles ActiveX: optimización.
Instalar clases y herramientas de controles ActiveX
Cuando se instala Visual C++, las clases de control ActiveX de MFC y los archivos DLL en tiempo de ejecución del control ActiveX de la versión de lanzamiento y de depuración que se instalan automáticamente si los controles ActiveX son seleccionado en configuración (son seleccionado de forma predeterminada).
De forma predeterminada, las clases de control ActiveX y las herramientas se instalan en subdirectorios siguientes bajo \ archivos de programa \ Microsoft Visual Studio .NET:
\ Common7 \ herramientas
Contiene los archivos del contenedor de prueba (TstCon32.exe, así como los archivos de Ayuda).
\ Vc7 \ atlmfc \ include
Contiene archivos de inclusión necesarios para desarrollar controles ActiveX con MFC
\ Vc7 \ atlmfc \ src \ MFC
Contiene el código fuente de las clases específicas del control ActiveX de MFC
\ Vc7 \ atlmfc \ lib
Contiene las bibliotecas necesarias desarrollar controles ActiveX con MFC
También hay ejemplos para controles ActiveX MFC.Para obtener más información sobre estos ejemplos, vea ejemplos de Controles: Controles ActiveX basadas