Compartir por


Desactivación de la opción Activar cuando esté visible

Un control tiene dos estados básicos: activo e inactivo. Tradicionalmente, se distinguían por el hecho de que el control tuviera o no una ventana. Un control activo tenía una ventana; un control inactivo no la tenía. Con la introducción de la activación sin ventana, esta distinción ya no es universal, pero sigue aplicándose a muchos controles.

En comparación con el resto de la inicialización que normalmente realiza un control ActiveX, la creación de una ventana es una operación extremadamente costosa. Idealmente, un control aplazaría la creación de su ventana hasta que sea absolutamente necesario.

Muchos controles no necesitan estar activos durante todo el tiempo que están visibles en un contenedor. A menudo, un control puede permanecer en estado inactivo hasta que el usuario realice una operación que requiera que esté activa (por ejemplo, al hacer clic con el mouse o presionar la tecla TAB). Para que un control permanezca inactivo hasta que el contenedor tenga que activarlo, quite la marca OLEMISC_ACTIVATEWHENVISIBLE de las marcas varias del control:

static const DWORD BASED_CODE _dwNVC_MFC_AxOptOleMisc =
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

La marca OLEMISC_ACTIVATEWHENVISIBLE se omite automáticamente si desactiva la opción Activar cuando sea visible en la página Configuración de control del asistente para controles ActiveX de MFC al crear el control.

Consulte también

Controles ActiveX MFC: Optimización