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: