Controles ActiveX MFC: Optimización

En este artículo se explican las técnicas que puede usar para optimizar los controles ActiveX para mejorar el rendimiento.

Importante

ActiveX es una tecnología heredada que no se debe usar para el nuevo desarrollo. Para más información sobre las tecnologías modernas que reemplazan a ActiveX, vea Controles ActiveX.

En los temas Desactivar la opción Activar cuando esté visible y Proporcionar interacción con el mouse mientras está inactivo se analizan los controles que no crean una ventana hasta que se activan. En el tema Proporcionar activación sin ventana se describen los controles que nunca crean una ventana, incluso cuando se activan.

Windows tiene dos inconvenientes principales para los objetos OLE: impiden que los objetos sean transparentes o no rectangulares cuando están activos y agregan una gran sobrecarga a la creación de instancias y la presentación de controles. Normalmente, la creación de una ventana tarda el 60 % del tiempo de creación de un control. Con una sola ventana compartida (normalmente el contenedor) y algún código de envío, un control recibe los mismos servicios de ventana, por lo general sin pérdida de rendimiento. Tener una ventana es principalmente una sobrecarga innecesaria para el objeto.

Algunas optimizaciones no mejoran necesariamente el rendimiento cuando el control se usa en determinados contenedores. Por ejemplo, los contenedores publicados antes de 1996 no admitían la activación sin ventanas, por lo que la implementación de esta característica no proporcionará una ventaja en contenedores más antiguos. Sin embargo, casi todos los contenedores admiten la persistencia, por lo que es probable que la optimización del código de persistencia del control mejore su rendimiento en cualquier contenedor. Si el control está diseñado específicamente para usarse con un tipo determinado de contenedor, es posible que quiera investigar cuál de estas optimizaciones es compatible con ese contenedor. En general, sin embargo, debería intentar implementar tantas de estas técnicas como sean aplicables a su control particular para garantizar que su control funcione tan bien como sea posible en una amplia gama de contenedores.

Puede implementar muchas de estas optimizaciones mediante el Asistente para controles ActiveX de MFC, en la página Configuración del control.

Opciones de optimización OLE del Asistente para controles ActiveX de MFC

Configuración de controles en el Asistente para controles ActiveX de MFC Acción Más información
Casilla Activar cuando esté visible Borrar Desactivación de la opción Activar cuando esté visible
Casilla Activación sin ventana Seleccionar Proporcionar activación sin ventana
Casilla Contexto del dispositivo no recortado Seleccionar Uso de un contexto de dispositivo no recortado
Casilla Activación sin parpadeo Seleccionar Proporcionar activación sin parpadeo
Casilla Notificaciones de puntero del mouse cuando esté inactivo Seleccionar Proporcionar interacción con el mouse mientras está inactivo
Casilla Código de dibujo optimizado Seleccionar Optimización del dibujo de controles

Para información detallada sobre las funciones miembro que implementan estas optimizaciones, consulte COleControl.

Para más información, consulte:

Consulte también

Controles ActiveX de MFC