Partager via


Gestion du bouton Appliquer

Les feuilles de propriétés possèdent une fonctionnalité que les boîtes de dialogue standard n'ont pas : elles permettent à l'utilisateur d'appliquer les modifications qu'il a apportées avant de fermer la feuille de propriétés. Pour ce faire, utilisez le bouton Appliquer. Cet article décrit les méthodes que vous pouvez utiliser pour implémenter cette fonctionnalité correctement.

Les boîtes de dialogue modales appliquent généralement les paramètres à un objet externe lorsque l’utilisateur clique sur OK pour fermer la boîte de dialogue. Il en va de même pour une feuille de propriétés : lorsque l’utilisateur clique sur OK, les nouveaux paramètres de la feuille de propriétés prennent effet.

Toutefois, vous pouvez autoriser l’utilisateur à enregistrer les paramètres sans avoir à fermer la boîte de dialogue feuille de propriétés. Il s’agit de la fonction du bouton Appliquer. Le bouton Appliquer applique les paramètres actuels dans toutes les pages de propriétés à l’objet externe, au lieu d’appliquer uniquement les paramètres actuels de la page active.

Par défaut, le bouton Appliquer est toujours désactivé. Vous devez écrire du code pour activer le bouton Appliquer aux moments appropriés, et vous devez écrire du code pour implémenter l’effet Appliquer, comme expliqué ci-dessous.

Si vous ne souhaitez pas proposer la fonctionnalité Appliquer à l’utilisateur, il n’est pas nécessaire de supprimer le bouton Appliquer. Vous pouvez le laisser désactivé, car il sera courant parmi les applications qui utilisent la prise en charge de la feuille de propriétés standard disponible dans les futures versions de Windows.

Pour signaler une page en cours de modification et activer le bouton Appliquer, appelez CPropertyPage::SetModified( TRUE ). Si l'une des pages signale avoir été modifiée, alors le bouton Appliquer restera activé, que la page actuellement active ait été modifiée ou non.

Vous devez appeler CPropertyPage ::SetModified chaque fois que l’utilisateur modifie tous les paramètres de la page. Une façon de détecter lorsqu’un utilisateur modifie un paramètre dans la page consiste à implémenter des gestionnaires de notification de modification pour chacun des contrôles de la page de propriétés, tels que EN_CHANGE ou BN_CLICKED.

Pour implémenter l’effet du bouton Appliquer, la feuille de propriétés doit indiquer à son propriétaire, ou à un autre objet externe de l’application, d’appliquer les paramètres actuels dans les pages de propriétés. En même temps, la feuille de propriétés doit désactiver le bouton Appliquer en appelant CPropertyPage::SetModified( FALSE ) pour toutes les pages ayant appliqué leurs modifications à l’objet externe.

Pour obtenir un exemple de ce processus, consultez l’exemple GÉNÉRAL MFC PROPDLG.

Voir aussi

feuilles de propriétés