Compartir a través de


Propiedades del control

Además de las propiedades definidas e implementadas por el propio control, la tecnología de controles ActiveX también implica:

Propiedades ambientales

El contenedor los expone a través de un sitio cliente de control para proporcionar valores de entorno que se aplican a todos los controles incrustados en el contenedor. Por ejemplo, un contenedor puede proporcionar un color de fondo predeterminado o una fuente predeterminada que el control puede usar. Las propiedades ambientales se exponen a través de IDispatch implementado en el objeto de sitio de un contenedor. El contenedor llama al método IOleControl::OnAmbientPropertyChange del control cuando cualquiera de sus propiedades ambientales cambia el valor. En respuesta, es posible que un control tenga que actualizar su propio estado interno o visual en respuesta. El contenedor indica qué propiedad ambiente cambió con el parámetro DISPID o puede pasar DISPID_UNKNOWN para indicar que han cambiado varias propiedades ambientales.

Propiedades extendidas

En realidad, se implementan mediante un contenedor para encapsular los controles que contiene para proporcionar propiedades administradas por contenedores que aparecen como si fueran propiedades de control nativas. El contenedor puede agregar el control, agregando las propiedades extendidas para complementar o invalidar las propiedades del control. El objeto agregado se denomina control extendido. En el contenedor, el control extendido aparece como el propio control y las propiedades extendidas parecen estar expuestas por el control. El contenedor admite un control extendido a través de su método de sitio cliente IOleControlSite::GetExtendedControl. El método GetExtendedControl permite que los controles naveguen por el sitio hasta el objeto de control extendido proporcionado por el contenedor, si el contenedor admite esta característica. Un contenedor también puede elegir mostrar páginas de propiedades para sus controles extendidos, además de las páginas que un control especificaría normalmente a través de ISpecifyPropertyPages. Por este motivo, un control tiene que pedir a un contenedor que muestre un marco de propiedad antes de que el control intente hacerlo por sí mismo. El control llama a IOleControlSite::ShowPropertyFrame para hacerlo. Si el contenedor implementa esta función, muestra el marco de propiedad en sí; si el método devuelve un error, el control puede mostrar el marco de propiedad.

Para obtener más información, vea los temas siguientes:

Métodos de control