Controles ActiveX MFC: Páginas de propiedades

Las páginas de propiedades permiten a un usuario de control ActiveX ver y cambiar las propiedades del control ActiveX. Para acceder a estas propiedades, se invoca un cuadro de diálogo de propiedades de control, que contiene una o varias páginas de propiedades que proporcionan una interfaz gráfica personalizada para ver y editar las propiedades del control.

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.

Las páginas de propiedades del control ActiveX se muestran de dos maneras:

  • Cuando se invoca el verbo Properties (OLEIVERB_PROPERTIES) del control, el control abre un cuadro de diálogo de propiedad modal que contiene las páginas de propiedades del control.

  • El contenedor puede mostrar su propio cuadro de diálogo modeless que muestra las páginas de propiedades del control seleccionado.

El cuadro de diálogo de propiedades (que se muestra en la ilustración siguiente) consta de un área para mostrar la página de propiedades actual, pestañas para cambiar entre páginas de propiedades y una colección de botones que realizan tareas comunes, como cerrar el cuadro de diálogo de página de propiedades, cancelar los cambios realizados o aplicar inmediatamente los cambios en el control ActiveX.

Properties dialog box for Circ3.
Propiedades (cuadro de diálogo)

En este artículo se tratan temas relacionados con el uso de páginas de propiedades en un control ActiveX. Entre ellas se incluyen las siguientes:

Para más información sobre el uso de páginas de propiedades en un control ActiveX, vea los artículos siguientes:

Para obtener información sobre el uso de hojas de propiedades en una aplicación MFC distinta de un control ActiveX, vea Hojas de propiedades.

Implementación de la página de propiedades predeterminada

Si usa el Asistente para controles ActiveX para crear el proyecto de control, el Asistente para controles ActiveX proporciona una clase de página de propiedades predeterminada para el control derivado de la clase COlePropertyPage. Inicialmente, esta página de propiedades está en blanco, pero puede agregarle cualquier control de cuadro de diálogo o conjunto de controles. Dado que el Asistente para controles ActiveX crea solo una clase de página de propiedades de forma predeterminada, se deben crear clases de página de propiedades adicionales (también derivadas de COlePropertyPage) mediante la Vista de clases. Para obtener más información sobre este procedimiento, vea Controles ActiveX de MFC: Agregar otra página de propiedades personalizadas.

La implementación de una página de propiedades (en este caso, el valor predeterminado) es un proceso de tres pasos:

Para implementar una página de propiedades

  1. Agregue una clase derivada de COlePropertyPage al proyecto de control. Si el proyecto se creó con el Asistente para controles ActiveX (como en este caso), la clase de página de propiedades predeterminada ya existe.

  2. Use el editor de cuadros de diálogo para agregar cualquier control a la plantilla de página de propiedades.

  3. Personalice la función DoDataExchange de la clase derivada de COlePropertyPage para intercambiar valores entre el control de página de propiedades y el control ActiveX.

Por ejemplo, los procedimientos siguientes usan un control simple (denominado "Sample"). El ejemplo se creó con el Asistente para controles ActiveX y solo contiene la propiedad Caption de stock.

Adición de controles a una página de propiedades

Para agregar controles a una página de propiedades

  1. Con el proyecto de control abierto, abra Vista de recursos.

  2. Haga doble clic en el icono del directorio Dialog.

  3. Abra el cuadro de diálogo IDD_PROPPAGE_SAMPLE.

    El Asistente para controles ActiveX anexa el nombre del proyecto al final del identificador del cuadro de diálogo, en este caso, Sample.

  4. Arrastre y suelte el control seleccionado del cuadro de herramientas en el área del cuadro de diálogo.

  5. En este ejemplo, un control de etiqueta de texto "Caption :" y un control de cuadro de edición con un identificador de IDC_CAPTION son suficientes.

  6. Haga clic en Guardar en la barra de herramientas para guardar los cambios.

Ahora que se ha modificado la interfaz de usuario, debe vincular el cuadro de edición con la propiedad Caption. Para ello, en la sección siguiente se edita la función CSamplePropPage::DoDataExchange.

Personalización de la función DoDataExchange

La función CWnd::D oDataExchange de la página de propiedades permite vincular valores de página de propiedades con los valores reales de las propiedades del control. Para establecer vínculos, debe asignar los campos de página de propiedades adecuados a sus propiedades de control respectivas.

Estas asignaciones se implementan mediante las funciones DDP_ de la página de propiedades. Las funciones DDP_ funcionan como las funciones DDX_ que se usan en cuadros de diálogo estándar de MFC, con una excepción. Además de la referencia a una variable miembro, las funciones DDP_ toman el nombre de la propiedad de control. A continuación se muestra una entrada típica en la función DoDataExchange de una página de propiedades.

DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption"));

Esta función asocia la variable miembro m_caption de la página de propiedades con caption, mediante la función DDP_TEXT.

Después de insertar el control de página de propiedades, debe establecer un vínculo entre el control de página de propiedades, IDC_CAPTION y la propiedad de control real, Caption, mediante la función DDP_Text como se ha descrito anteriormente.

Las páginas de propiedades están disponibles para otros tipos de control de diálogo, como casillas, botones de radio y cuadros de lista. En la tabla siguiente se muestra todo el conjunto de funciones DDP_ de las páginas de propiedades y sus propósitos:

Funciones de la página de propiedades

Nombre de la función Uso de esta función para vincular
DDP_CBIndex Índice de la cadena seleccionada en un cuadro combinado con una propiedad de control.
DDP_CBString La cadena seleccionada en un cuadro combinado con una propiedad de control. La cadena seleccionada puede comenzar por las mismas letras que el valor de la propiedad, pero no es necesario que coincida con ella por completo.
DDP_CBStringExact La cadena seleccionada en un cuadro combinado con una propiedad de control. La cadena seleccionada y el valor de cadena de la propiedad deben coincidir exactamente.
DDP_Check Casilla con una propiedad de control.
DDP_LBIndex Índice de la cadena seleccionada en un cuadro de lista con una propiedad de control.
DDP_LBString La cadena seleccionada en un cuadro de lista con una propiedad de control. La cadena seleccionada puede comenzar por las mismas letras que el valor de la propiedad, pero no es necesario que coincida con ella por completo.
DDP_LBStringExact La cadena seleccionada en un cuadro de lista con una propiedad de control. La cadena seleccionada y el valor de cadena de la propiedad deben coincidir exactamente.
DDP_Radio Botón de radio con una propiedad de control.
DDP_Text Texto con una propiedad de control.

Consulte también

Controles ActiveX de MFC
COlePropertyPage (clase)