Gérer le bouton de l'application
Les feuilles de propriétés ont une fonction que les boîtes de dialogue standard ne font pas : Elles permettent à l'utilisateur d'appliquer des modifications qu'elles ont apportées avant de fermer la feuille de propriétés.Cette opération est effectuée à l'aide de le bouton de l'application.Cet article traite des 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 dans 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 suivants : Lorsque l'utilisateur clique sur OK, les nouveaux paramètres dans la feuille de propriétés prennent effet.
Toutefois, vous pouvez permettre à l'utilisateur d'enregistrer des paramètres sans devoir fermer la boîte de dialogue de feuille de propriétés.C'est la fonction du bouton de l'application.Le bouton de l'application applique les paramètres actuels dans toutes les pages de propriétés à l'objet externe, par opposition à implémenter que les paramètres actuels actuellement c'est-à-dire de la page active.
Par défaut, le bouton de l'application est toujours désactivé.Vous devez écrire du code pour activer le bouton d'appliquer aux temps appropriés, et vous devez écrire le code pour implémenter l'effet Apply, comme expliqué ci-dessous.
Si vous ne souhaitez pas offrir la fonctionnalité d'appliquer à l'utilisateur, il n'est pas nécessaire de supprimer le bouton de l'application.Vous pouvez le laisser désactivée, comme assurez commun entre les applications qui utilisent la prise en charge standard de feuille de propriétés disponibles dans les versions ultérieures de windows.
Pour enregistrer une page comme étant modifié et l'activation du bouton de l'application, appelez CPropertyPage::SetModified( TRUE ).Si les pages l'une d'elles stockent être modifié, le bouton de l'application reste actif, que actuellement - la page active a été modifiée.
Vous devez appeler CPropertyPage::SetModified chaque fois que l'utilisateur modifier des paramètres dans la page.Un moyen de détecter lorsqu'un utilisateur modifie un paramètre de la page est d'implémenter des gestionnaires de notification de modifications pour chacun des contrôles dans la page de propriétés, telle qu' EN_CHANGE ou BN_CLICKED.
Pour implémenter l'effet du bouton de l'application, la feuille de propriétés doit indiquer son propriétaire, ou un autre objet externe dans 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 de l'application en appelant CPropertyPage::SetModified( FALSE ) pour toutes les pages qui appliquaient leurs modifications apportées à l'objet externe.
Pour obtenir un exemple de ce processus, consultez à MFC l'exemple général PROPDLG.