COleControl

La clase COleControl es una clase base poderosa para el desarrollo de controles OLE. Derivado de CWnd, esta clase hereda toda la funcionalidad de un objeto de ventana de Windows más funcionalidad adicional específica de OLE, como evento disparando y la capacidad para soportar los métodos y propiedades.

OLE controles pueden insertarse en aplicaciones de contenedor OLE y comunicarán con el contenedor mediante un sistema bidireccional de desencadenamiento de eventos y exponiendo los métodos y propiedades para el contenedor. Tenga en cuenta que contenedores OLE estándar sólo admiten la funcionalidad básica de un control OLE. Son incapaces de soportar características extendidas de un control OLE. Desencadenamiento de eventos se produce cuando los eventos se envían al contenedor como consecuencia de ciertas acciones tienen lugar en el control. A su vez, el contenedor se comunica con el control mediante un conjunto de métodos y propiedades análogas a las funciones miembro expuesto y los miembros de datos de una clase de C++. Este enfoque permite al desarrollador controlar la apariencia del control y notificar el contenedor cuando se producen determinadas acciones.

Controles sin ventanas

OLE controles pueden ser utilizado en el lugar activo sin una ventana. Los controles sin ventanas tienen ventajas significativas:

Los controles no es necesario una ventana. Servicios que ofrece una ventana pueden prestarse fácilmente a través de una única ventana compartida (normalmente el contenedor) y un poco de código de envío. Tener una ventana es principalmente una complicación innecesaria en el objeto.

Cuando se utiliza la activación sin ventana, el contenedor (que tienen una ventana) es responsable de proporcionar servicios que de lo contrario habría sido facilitados por la ventana del control. Por ejemplo, si el control necesita consultar el foco de teclado, consulta la captura del mouse o bien obtener un contexto de dispositivo, estas operaciones son gestionadas por el contenedor. El COleControl las funciones miembro de operación sin ventanas invocar estas operaciones en el contenedor.

Cuando está habilitada la activación sin ventana, los delegados de contenedor de entrada mensajes de la interfaz del control IOleInPlaceObjectWindowless (una extensión de IOleInPlaceObject apoyo sin ventanas). COleControlde implementación de esta interfaz enviará estos mensajes a través del mapa de mensajes de control, después de ajustar el ratón coordina adecuadamente. Puede procesar estos mensajes como los mensajes de ventana normal, agregando las entradas correspondientes en el mapa de mensajes.

En un control sin ventanas, siempre debe utilizar las funciones de miembro de COleControl en lugar de las funciones miembro de CWnd correspondientes o sus funciones relacionadas de la API de Windows.

OLE control objetos también pueden crear una ventana sólo cuando se convierten en activos, pero sube la cantidad de trabajo necesaria para la transición de inactivo activo y disminuye la velocidad de la transición. Hay casos cuando se trata de un problema: por ejemplo, considere la posibilidad de una cuadrícula de cuadros de texto. Cuando cursoring arriba y abajo a través de la columna, cada control debe estar en el lugar activados y desactivados luego. La velocidad de la transición activa/inactiva afectará directamente a la velocidad de desplazamiento.

Para obtener más información sobre el desarrollo de un marco de control OLE, vea los artículos Controles ActiveX y crear un programa con el ActiveX ControlWizard en la Guía del programador de Visual C++. Para obtener más información sobre cómo agregar funcionalidad más allá del marco básico, consulte crear un ActiveX Control (tutorial de círculo) de Tutoriales de Visual C++. Para obtener información sobre la optimización de controles OLE, incluyendo controles sin ventanas y parpadeos, consulte controles ActiveX: optimización de en la Guía del programador de Visual C++.

# include lt;afxctl.h>

Miembros de la clase |nbsp; Clase base | Diagrama de jerarquía

Muestras  MFC muestra CIRC3 | Ejemplo de MFC DRAWPIC | Ejemplo de MFC TESTHELP

Vea tambié&nnbsp;COlePropertyPage, CFontHolder, CPictureHolder

Index