Partager via


Gestion du bouton Appliquer

Les feuilles de propriétés ont une fonction que les boîtes de dialogue standard n'ont pas : elles permettent à l'utilisateur d'appliquer les modifications qu'il a effectuées avant de fermer la feuille de propriétés. Cette opération s'effectue à l'aide du 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 sont généralement les paramètres d'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 permettre à l'utilisateur d'enregistrer des paramètres sans avoir à fermer la boîte de dialogue de la feuille de propriétés. Il s'agit de la fonction du bouton Appliquer. Le bouton Appliquer applique les paramètres dans toutes les pages de propriétés de l'objet externe, par opposition au fait d'appliquer uniquement les paramètres de la page actuellement active.

Par défaut, le bouton Appliquer reste 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 la laisser désactiver, chose qui sera courante pour les applications qui utiliseront la prise en charge des feuilles de propriétés standard disponibles dans les prochaines 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 fait état de modifications, le bouton Appliquer restera activé, indépendamment de si la page active a été modifiée ou pas.

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 dans l'application, pour appliquer les paramètres aux 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 ) toutes les pages qui ont 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