Compartir a través de


Control del botón Aplicar

Las hojas de propiedades tienen una funcionalidad que los cuadros de diálogo estándar no: permiten al usuario aplicar los cambios realizados antes de cerrar la hoja de propiedades. Esto se hace mediante el botón Aplicar. En este artículo se describen los métodos que puede usar para implementar esta característica correctamente.

Los cuadros de diálogo modales suelen aplicar la configuración a un objeto externo cuando el usuario hace clic en Aceptar para cerrar el cuadro de diálogo. Lo mismo sucede con una hoja de propiedades: cuando el usuario hace clic en Aceptar, la nueva configuración de la hoja de propiedades surte efecto.

Sin embargo, puede permitir que el usuario guarde la configuración sin tener que cerrar el cuadro de diálogo de la hoja de propiedades. Esta es la función del botón Aplicar. El botón Aplicar aplica la configuración actual en todas las páginas de propiedades al objeto externo, en lugar de aplicar solo la configuración actual de la página activa actualmente.

De forma predeterminada, el botón Aplicar siempre está deshabilitado. Debe escribir código para habilitar el botón Aplicar en los momentos adecuados y debe escribir código para implementar el efecto de Aplicar, como se explica a continuación.

Si no desea ofrecer la funcionalidad Aplicar al usuario, no es necesario quitar el botón Aplicar. Puede dejarla deshabilitada, como será habitual entre las aplicaciones que usan compatibilidad con la hoja de propiedades estándar disponible en versiones futuras de Windows.

Para notificar una página como modificada y habilitar el botón Aplicar, llame a CPropertyPage::SetModified( TRUE ). Si alguna de las páginas informa haber sido modificada, el botón Aplicar permanecerá habilitado, independientemente de si la página actualmente activa ha sido modificada.

Debe llamar a CPropertyPage::SetModified cada vez que el usuario cambie cualquier configuración de la página. Una manera de detectar cuándo un usuario cambia una configuración en la página es implementar controladores de notificaciones de cambios para cada uno de los controles de la página de propiedades, como EN_CHANGE o BN_CLICKED.

Para implementar el efecto del botón Aplicar, la hoja de propiedades debe indicar al propietario o a algún otro objeto externo de la aplicación, para aplicar la configuración actual en las páginas de propiedades. Al mismo tiempo, la hoja de propiedades debe deshabilitar el botón Aplicar llamando a CPropertyPage::SetModified( FALSE ) para todas las páginas que aplicaron sus modificaciones al objeto externo.

Para obtener un ejemplo de este proceso, consulte el EJEMPLO general de MFC PROPDLG.

Consulte también

de hojas de propiedades de