Utilizzo di controlli Tree
L'utilizzo tipico di un controllo albero (CTreeCtrl) segue il modello seguente:
Viene creato il controllo. Se il controllo viene specificato in un modello di finestra di dialogo o se si usa
CTreeView
, la creazione è automatica quando viene creata la finestra di dialogo o la visualizzazione. Se si desidera creare il controllo albero come finestra figlio di un'altra finestra, usare la funzione Crea membro.Se si desidera che il controllo albero usi immagini, impostare un elenco di immagini chiamando SetImageList. È anche possibile modificare il rientro chiamando SetIndent. Un buon momento per eseguire questa operazione si trova in OnInitDialog (per i controlli nelle finestre di dialogo) o OnInitialUpdate (per le visualizzazioni).
Inserire i dati nel controllo chiamando la
CTreeCtrl
funzione InsertItem una volta per ogni elemento di dati.InsertItem
restituisce un handle all'elemento che è possibile utilizzare per farvi riferimento in un secondo momento, ad esempio quando si aggiungono elementi figlio. Un buon momento per inizializzare i dati è inclusoOnInitDialog
(per i controlli nelle finestre di dialogo) oOnInitialUpdate
(per le visualizzazioni).Mentre l'utente interagisce con il controllo, questo invierà vari messaggi di notifica. È possibile specificare una funzione per gestire ogni messaggio che si desidera gestire aggiungendo una macro ON_NOTIFY_REFLECT nella mappa messaggi della finestra di controllo o aggiungendo una macro ON_NOTIFY alla mappa messaggi della finestra padre. Per un elenco delle possibili notifiche, vedere Messaggi di notifica del controllo albero più avanti in questo argomento.
Chiamare le varie funzioni membro Set per impostare i valori per il controllo. Le modifiche che è possibile apportare includono l'impostazione del rientro e la modifica del testo, dell'immagine o dei dati associati a un elemento.
Usare le varie funzioni Get per esaminare il contenuto del controllo. È anche possibile attraversare il contenuto del controllo albero con funzioni che consentono di recuperare handle a genitori, figli e elementi di pari livello di un elemento specificato. È anche possibile ordinare gli elementi figlio di un nodo specifico.
Al termine del controllo, assicurarsi che sia distrutto correttamente. Se il controllo albero si trova in una finestra di dialogo o se si tratta di una visualizzazione, l'oggetto
CTreeCtrl
verrà eliminato automaticamente. In caso contrario, è necessario assicurarsi che sia il controllo che l'oggettoCTreeCtrl
vengono eliminati correttamente.