Gestione del pulsante Applica
Le finestre delle proprietà hanno una funzionalità che le finestre di dialogo standard non consentono all'utente di applicare le modifiche apportate prima di chiudere la finestra delle proprietà. A tale scopo, usare il pulsante Applica. Questo articolo illustra i metodi che è possibile usare per implementare correttamente questa funzionalità.
Le finestre di dialogo modali applicano in genere le impostazioni a un oggetto esterno quando l'utente fa clic su OK per chiudere la finestra di dialogo. Lo stesso vale per una finestra delle proprietà: quando l'utente fa clic su OK, le nuove impostazioni nella finestra delle proprietà diventano effettive.
Tuttavia, è possibile consentire all'utente di salvare le impostazioni senza dover chiudere la finestra di dialogo della finestra di dialogo delle proprietà. Questa è la funzione del pulsante Applica. Il pulsante Applica applica le impostazioni correnti in tutte le pagine delle proprietà all'oggetto esterno, anziché applicare solo le impostazioni correnti della pagina attualmente attiva.
Per impostazione predefinita, il pulsante Applica è sempre disabilitato. È necessario scrivere codice per abilitare il pulsante Applica nei momenti appropriati ed è necessario scrivere codice per implementare l'effetto di Applica, come illustrato di seguito.
Se non si desidera offrire la funzionalità Applica all'utente, non è necessario rimuovere il pulsante Applica. Puoi lasciarlo disabilitato, come sarà comune tra le applicazioni che usano il supporto della finestra delle proprietà standard disponibile nelle versioni future di Windows.
Per segnalare una pagina come modificata e abilitare il pulsante Applica, chiamare CPropertyPage::SetModified( TRUE )
. Se una delle pagine del report viene modificata, il pulsante Applica rimarrà abilitato, indipendentemente dal fatto che la pagina attiva sia stata modificata.
È necessario chiamare CPropertyPage::SetModified ogni volta che l'utente modifica le impostazioni nella pagina. Un modo per rilevare quando un utente modifica un'impostazione nella pagina consiste nell'implementare gestori di notifica delle modifiche per ognuno dei controlli nella pagina delle proprietà, ad esempio EN_CHANGE o BN_CLICKED.
Per implementare l'effetto del pulsante Applica, la finestra delle proprietà deve indicare al proprietario o a un altro oggetto esterno nell'applicazione di applicare le impostazioni correnti nelle pagine delle proprietà. Allo stesso tempo, la finestra delle proprietà deve disabilitare il pulsante Applica chiamando CPropertyPage::SetModified( FALSE )
per tutte le pagine che hanno applicato le modifiche all'oggetto esterno.
Per un esempio di questo processo, vedere l'esempio generale MFC PROPDLG.