Controles ActiveX MFC: Páginas de propiedades
Las páginas de propiedades permiten al usuario de un control ActiveX ver y cambiar las propiedades del control ActiveX. Para obtener acceso a estas propiedades, se invoca un cuadro de diálogo de propiedades del control, el cual contiene una o varias páginas de propiedades que proporcionan una interfaz gráfica personalizada para ver y editar las propiedades del control.
Las páginas de propiedades del control ActiveX se muestran de dos maneras:
Cuando se invoca el verbo de las propiedades del control (OLEIVERB_PROPERTIES), el control se abre un cuadro de diálogo de propiedades modal que contiene las páginas de propiedades del control.
El contenedor puede mostrar su propio cuadro de diálogo no modal que muestra las páginas de propiedades del control seleccionado.
El cuadro de diálogo de propiedades (que se muestra en la figura siguiente) consta de un área para mostrar la página actual de la propiedad, pestañas para cambiar entre las páginas de propiedades, y una colección de botones que realicen tareas comunes como cerrar el diálogo de la página de propiedades, se cualquier cambio realizado, o inmediatamente aplicando los cambios al control ActiveX.
Cuadro de diálogo Propiedades
En este artículo se tratan los temas relacionados con las páginas de propiedades de un control ActiveX. Se incluyen los siguientes:
Implementar la propiedad predeterminada de un control ActiveX
Agregar controles a una página de propiedades
Personalizar la función de DoDataExchange
Para obtener más información sobre cómo utilizar las páginas de propiedades de un control ActiveX, vea los artículos siguientes:
Para obtener información sobre cómo utilizar las hojas de propiedades en una aplicación MFC distinto de un control ActiveX, vea Hojas de propiedades (MFC).
Implementar la página de propiedad predeterminada
Si utiliza el asistente para controles ActiveX para crear el proyecto de control, el asistente para controles ActiveX proporciona una clase de página de la propiedad predeterminada del control derivado de COlePropertyPage (Clase). Inicialmente, esta página de propiedades está en blanco, pero puede agregar cualquier control de cuadro de diálogo o conjunto de controles al. Dado que el asistente para controles ActiveX solo crea una clase de la página de propiedades de forma predeterminada, las clases adicionales de la página de propiedades (también derivadas de COlePropertyPage) se deben realizar utilizando la vista de clases. Para obtener más información sobre este procedimiento, vea Controles ActiveX MFC: Agregar otra página de propiedades personalizadas.
Implementar una página de propiedades (en este caso, el valor predeterminado) es un proceso de tres- paso:
Para implementar una página de propiedades
Agregue COlePropertyPage- clase derivada al proyecto de control. Si el proyecto se creó mediante el asistente para controles ActiveX (como en este caso), la clase de página de la propiedad predeterminada ya existe.
Utilice el editor de cuadros de diálogo para agregar controles a la plantilla de página de propiedades.
Personalizar la función de COlePropertyPage- clase derivada de DoDataExchange a los valores de intercambio entre el control de la página de propiedades y el control ActiveX.
Como las vistas, los procedimientos siguientes utilizan un control sencillo (denominado “ejemplo”). El ejemplo se creó mediante el asistente para controles ActiveX y sólo contiene la propiedad caption común.
Agregar Controles a una página de propiedades
Para agregar controles a una página de propiedades
Con el proyecto de control abierta, abra la vista de recursos.
Haga doble clic en el icono de directorio de Cuadro de diálogo .
Abra el cuadro de diálogo de IDD_PROPPAGE_SAMPLE .
El asistente para controles ActiveX anexa el nombre del proyecto al final del identificador de diálogo, en este caso, ejemplo.
Arrastrar y colocar el control seleccionado del cuadro de herramientas al área del cuadro de diálogo.
Para este ejemplo, la leyenda de un control label de texto “: ” y un control de cuadro de edición con un identificador de IDC_CAPTION es suficiente.
Haga clic en Guardar en la barra de herramientas para guardar los cambios.
Ahora que se ha modificado la interfaz de usuario, debe enlazar el control de edición con la propiedad caption. Esto se hace en la sección siguiente editando la función de CSamplePropPage::DoDataExchange .
Personalizar la función de DoDataExchange
La función de CWnd::DoDataExchange de la página de propiedades permite vincular valores de la página de propiedades con los valores reales de las propiedades del control. Para establecer vínculos, debe asignar los campos correspondientes de la página de propiedades a sus propiedades respectivas del control.
Estas asignaciones se implementan utilizando las funciones de DDP_ de la página de propiedades. Las funciones de DDP_ funcionan como las funciones de DDX_ utilizadas en los cuadros de diálogo estándar de MFC, con una excepción. Además de la referencia a una variable miembro, las funciones de DDP_ toman el nombre de la propiedad del control. A continuación se muestra una entrada típica en función de DoDataExchange para una página de propiedades.
DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption"));
Esta función asociado a la variable miembro de m_caption de la página de propiedades al leyenda, mediante la función de DDP_TEXT .
Después de hacer el control de página de propiedades insertar, debe establecer un vínculo entre el control de página de propiedades, IDC_CAPTION, y la propiedad real del control, leyenda, mediante la función de DDP_Text anteriormente descrita.
Páginas de propiedades (MFC) está disponible para otros tipos de controles de cuadro de diálogo, como casillas, botones de radio, y cuadros de lista. La tabla siguiente enumera el conjunto completo de funciones de DDP_ de la página de propiedades y sus propósitos:
Funciones de página de propiedades
Nombre de la función |
Utilice esta función para vincular |
---|---|
DDP_CBIndex |
El índice seleccionado de la cadena en un cuadro combinado con una propiedad del control. |
DDP_CBString |
La cadena seleccionado en un cuadro combinado con una propiedad del control. La cadena seleccionado puede empezar con las mismas letras que el valor de propiedad pero no tiene que coincidir con él totalmente. |
DDP_CBStringExact |
La cadena seleccionado en un cuadro combinado con una propiedad del control. La cadena seleccionado y el valor de cadena de propiedad deben coincidir exactamente. |
DDP_Check |
Una casilla con una propiedad del control. |
DDP_LBIndex |
El índice seleccionado de la cadena en un cuadro de lista con una propiedad del control. |
DDP_LBString |
La cadena seleccionado en un cuadro de lista con una propiedad del control. La cadena seleccionado puede empezar con las mismas letras que el valor de propiedad pero no tiene que coincidir con él totalmente. |
DDP_LBStringExact |
La cadena seleccionado en un cuadro de lista con una propiedad del control. La cadena seleccionado y el valor de cadena de propiedad deben coincidir exactamente. |
DDP_Radio |
Un botón de radio a una propiedad del control. |
DDP_Text |
Texto con una propiedad del control. |