Informazioni sui controlli Tree-View
Un controllo visualizzazione albero è una finestra che visualizza un elenco gerarchico di elementi, ad esempio le intestazioni di un documento, le voci di un indice o i file e le directory in un disco. Ogni elemento è costituito da un'etichetta e da un'immagine bitmap facoltativa e a ogni elemento può essere associato un elenco di elementi secondari. Facendo clic su un elemento, l'utente può espandere o comprimere l'elenco associato di elementi secondari.
La figura seguente mostra un semplice controllo ad albero con un nodo radice, un nodo espanso e un nodo chiuso. Il controllo usa una bitmap per l'elemento selezionato e un'altra bitmap per altri elementi.
Dopo aver creato un controllo ad albero, puoi aggiungere, rimuovere, disporre o modificare gli elementi inviando messaggi al controllo. Ogni messaggio include una o più macro corrispondenti che è possibile usare invece di inviare il messaggio in modo esplicito.
In questa sezione vengono illustrati gli argomenti seguenti.
- Tree-View stili
- Elementi Padre e Figlio
- etichette degli elementi
- Tree-View modifica delle etichette
- Tree-View posizione dell'elemento
- Panoramica degli stati degli elementi Tree-View
- Selezione Elementi
- Informazioni sugli elementi
- Tree-View Elenchi di Immagini
- operazioni di trascinamento della selezione
- Tree-View Messaggi di Notifica di Controllo
- Tree-View predefinita di elaborazione dei messaggi
- argomenti correlati
Stili Tree-View
Gli stili di visualizzazione ad albero regolano gli aspetti dell'aspetto di un controllo visualizzazione albero. Gli stili iniziali vengono impostati quando si crea il controllo visualizzazione albero. È possibile recuperare e modificare gli stili dopo aver creato il controllo visualizzazione albero usando le funzioni GetWindowLong e SetWindowLong.
Lo stile TVS_HASLINES migliora la rappresentazione grafica della gerarchia di un controllo ad albero disegnando linee che collegano gli elementi figlio al relativo elemento padre, come mostrato nell'illustrazione seguente.
Da solo, questo stile non disegna linee nella radice della gerarchia. A tale scopo, è necessario combinare gli stili TVS_HASLINES e TVS_LINESATROOT. Il risultato è illustrato nella figura seguente.
L'utente può espandere o comprimere l'elenco di elementi figlio di un elemento padre facendo doppio clic sull'elemento padre. Un controllo ad albero con lo stile TVS_HASBUTTONS aggiunge un pulsante sul lato sinistro di ogni elemento padre. L'utente può fare clic sul pulsante una volta invece di fare doppio clic sull'elemento padre per espandere o comprimere l'elemento figlio. TVS_HASBUTTONS non aggiunge pulsanti agli elementi nella radice della gerarchia. A tale scopo, è necessario combinare TVS_HASLINES, TVS_LINESATROOTe TVS_HASBUTTONS. Questa combinazione di stili è illustrata nella figura seguente.
Lo stile TVS_CHECKBOXES crea caselle di controllo accanto a ogni elemento. Se si desidera utilizzare lo stile della casella di controllo, è necessario impostare lo stile di TVS_CHECKBOXES (con SetWindowLong) dopo aver creato il controllo tree-view e prima di riempire l'albero. In caso contrario, le caselle di controllo potrebbero essere deselezionate, a seconda dei problemi di tempistica. La figura seguente mostra lo stile della casella di controllo.
Lo stile TVS_FULLROWSELECT fa sì che l'evidenziazione della selezione si estenda sulla larghezza intera del controllo, non solo sull'elemento stesso. La figura seguente mostra questo stile.
Lo stile TVS_EDITLABELS consente all'utente di modificare le etichette degli elementi della visualizzazione ad albero. Per altre informazioni sulla modifica delle etichette, vedere Tree-View Modifica delle etichette.
Per altre informazioni su questi e altri stili, vedere Tree-View Control Window Styles.
Elementi padre e figlio
A qualsiasi elemento di un controllo ad albero può essere associato un elenco di elementi secondari, chiamati elementi figlio. Un elemento con uno o più elementi figlio si chiama elemento padre . Un elemento figlio viene visualizzato sotto il relativo elemento padre ed è indentato per indicare che è subordinato all'elemento padre. Un elemento senza elemento padre viene visualizzato all'inizio della gerarchia e viene chiamato elemento radice .
Per aggiungere un elemento a un controllo visualizzazione albero, inviare il messaggio TVM_INSERTITEM al controllo . Il messaggio restituisce un handle al tipo HTREEITEM, che identifica in modo univoco l'elemento. Quando si aggiunge un elemento, è necessario specificare l'handle per l'elemento padre del nuovo elemento. Se si specifica NULL o il valore TVI_ROOT anziché un handle di elemento padre nella struttura TVINSERTSTRUCT, l'elemento viene aggiunto come elemento radice.
In qualsiasi momento, lo stato dell'elenco di elementi figlio di un elemento padre può essere espanso o compresso. Quando lo stato viene espanso, gli elementi figlio vengono visualizzati sotto l'elemento padre. Quando viene compresso, gli elementi figlio non vengono visualizzati. L'elenco passa automaticamente tra gli stati espansi e compressi quando l'utente fa doppio clic sull'elemento padre o, se l'elemento padre ha lo stile TVS_HASBUTTONS, quando l'utente fa clic sul pulsante associato all'elemento padre. Un'applicazione può espandere o comprimere gli elementi figlio usando il messaggio TVM_EXPAND.
Un controllo ad albero invia alla finestra principale un messaggio di notifica TVN_ITEMEXPANDING quando l'elenco di elementi figlio di un elemento padre sta per essere espanso o compresso. La notifica offre a un'applicazione la possibilità di impedire la modifica o di impostare gli attributi dell'elemento padre che dipendono dallo stato dell'elenco di elementi figlio. Dopo aver modificato lo stato dell'elenco, il controllo tree-view invia alla finestra padre un messaggio di notifica TVN_ITEMEXPANDED.
Quando un elenco di elementi figlio viene espanso, viene rientrato rispetto all'elemento padre. È possibile impostare il livello di rientro usando il messaggio TVM_SETINDENT o recuperare il valore attuale usando il messaggio TVM_GETINDENT.
Un controllo a visualizzazione ad albero utilizza la memoria allocata dall'heap del processo che crea il controllo a visualizzazione ad albero. Il numero massimo di elementi in una visualizzazione albero si basa sulla quantità di memoria disponibile nell'heap.
Etichette degli elementi
In genere si specifica il testo dell'etichetta di un elemento quando si aggiunge l'elemento al controllo visualizzazione albero. Il messaggio TVM_INSERTITEM include una strutturaTVITEMche definisce le proprietà dell'elemento, inclusa una stringa contenente il testo dell'etichetta.
Un controllo visualizzazione albero alloca memoria per l'archiviazione di ogni elemento; il testo delle etichette degli elementi occupa una parte significativa di questa memoria. Se l'applicazione mantiene una copia delle stringhe nel controllo visualizzazione albero, è possibile ridurre i requisiti di memoria del controllo specificando il valore LPSTR_TEXTCALLBACK nel membro pszText di TVITEM anziché passare le stringhe effettive alla visualizzazione albero. L'utilizzo di LPSTR_TEXTCALLBACK fa sì che il controllo visualizzazione albero recuperi il testo dell'etichetta di un elemento dalla finestra padre ogni volta che l'elemento deve essere ridisegnato. Per recuperare il testo, il controllo della visualizzazione ad albero invia un messaggio di notifica TVN_GETDISPINFO, che include l'indirizzo di una struttura NMTVDISPINFO. La finestra padre deve riempire i membri appropriati della struttura inclusa.
Modifica delle Etichette Tree-View
L'utente può modificare direttamente le etichette degli elementi in un controllo visualizzazione albero con lo stile TVS_EDITLABELS. L'utente inizia a modificare facendo clic sull'etichetta dell'elemento che ha il focus. Un'applicazione inizia la modifica usando il messaggio di TVM_EDITLABEL. Il controllo visualizzazione albero notifica alla finestra padre quando inizia la modifica e quando viene annullata o completata. Al termine della modifica, la finestra padre è responsabile dell'aggiornamento dell'etichetta dell'elemento, se necessario.
All'inizio della modifica delle etichette, un controllo a visualizzazione ad albero invia alla finestra padre un messaggio di notifica TVN_BEGINLABELEDIT. Elaborando questa notifica, un'applicazione può consentire la modifica di alcune etichette e impedire la modifica di altre. La restituzione di zero consente la modifica e la restituzione di un valore diverso da zero ne impedisce la restituzione.
Quando la modifica delle etichette viene annullata o completata, un controllo ad albero invia alla finestra padre un messaggio di notifica TVN_ENDLABELEDIT. Il parametro lParam è l'indirizzo di una struttura NMTVDISPINFO. Il parametro elemento è una struttura TVITEM che identifica l'elemento e include il testo modificato. La finestra padre è responsabile dell'aggiornamento dell'etichetta dell'elemento se desidera mantenere la nuova etichetta. Il membro pszText di TVITEM è zero se l'operazione di modifica viene annullata.
Durante la modifica delle etichette, in genere in risposta al messaggio di notifica TVN_BEGINLABELEDIT, è possibile recuperare l'handle al controllo di modifica usato per la modifica delle etichette usando il messaggio TVM_GETEDITCONTROL. È possibile inviare il controllo di modifica un messaggio di EM_SETLIMITTEXT per limitare la quantità di testo che un utente può immettere o sottoclassare il controllo di modifica per intercettare ed eliminare caratteri non validi. Si noti, tuttavia, che il controllo di modifica viene visualizzato solo dopo l'invio di TVN_BEGINLABELEDIT.
Tree-View posizione dell'elemento
La posizione iniziale di un elemento viene impostata quando l'elemento viene aggiunto al controllo visualizzazione albero usando il messaggio TVM_INSERTITEM. Il messaggio include una struttura TVINSERTSTRUCT che specifica l'handle per l'elemento padre e l'handle per l'elemento dopo il quale il nuovo elemento deve essere inserito. Il secondo handle deve identificare un elemento figlio del genitore specificato oppure uno dei seguenti valori: TVI_FIRST, TVI_LAST o TVI_SORT.
Quando si specifica TVI_FIRST o TVI_LAST, il controllo visualizzazione albero posiziona il nuovo elemento all'inizio o alla fine dell'elenco di elementi figlio dell'elemento padre specificato. Quando si specifica TVI_SORT, il controllo visualizzazione albero inserisce il nuovo elemento nell'elenco di elementi figlio in ordine alfabetico in base al testo delle etichette degli elementi.
È possibile ordinare in ordine alfabetico l'elenco degli elementi figlio di un elemento padre usando il messaggio TVM_SORTCHILDREN. Il messaggio include un parametro che specifica se anche tutti i livelli di elementi figlio decrescente dall'elemento padre specificato vengono ordinati in ordine alfabetico.
Il messaggio TVM_SORTCHILDRENCB consente di ordinare gli elementi figlio in base ai criteri che definisci. Quando si usa questo messaggio, si specifica una funzione di callback definita dall'applicazione che il controllo tree-view può chiamare quando è necessario stabilire l'ordine relativo di due elementi figlio. La funzione di callback riceve due valori definiti dall'applicazione a 32 bit per gli elementi confrontati e un terzo valore a 32 bit specificato durante l'invio di TVM_SORTCHILDRENCB.
Panoramica degli stati degli elementi Tree-View
Ogni elemento in un controllo ad albero ha uno stato corrente. Le informazioni sullo stato per ogni elemento includono un set di flag di bit, nonché indici di elenco di immagini che indicano l'immagine dello stato dell'elemento e l'immagine di sovrapposizione. I flag di bit indicano se l'elemento è selezionato, disabilitato, espanso e così via. Nella maggior parte dei casi, un controllo visualizzazione albero imposta automaticamente lo stato di un elemento in modo da riflettere le azioni dell'utente, ad esempio la selezione di un elemento. Tuttavia, è anche possibile impostare lo stato di un elemento usando il messaggio di TVM_SETITEM ed è possibile recuperare lo stato corrente di un elemento usando il messaggio TVM_GETITEM. Per un elenco completo degli stati degli elementi, vedere Tree-View Stati degli elementi di controllo.
Lo stato corrente di un elemento è specificato dal membro dello stato della struttura TVITEM. Un controllo visualizzazione albero potrebbe modificare lo stato di un elemento per riflettere un'azione dell'utente, ad esempio la selezione dell'elemento o l'impostazione del focus sull'elemento. Inoltre, un'applicazione potrebbe modificare lo stato di un elemento per disabilitare o nascondere l'elemento o per specificare un'immagine di sovrimpressione o un'immagine dello stato.
Quando specifichi o modifichi lo stato di un elemento, il membro statemask di TVITEM indica quali bit di stato devono essere impostati, e il membro state contiene i nuovi valori per quei bit.
Per impostare l'immagine di sovrapposizione di un elemento, la maschera di stato deve includere il valore TVIS_OVERLAYMASK, e lo stato deve includere l'indice base-uno dell'immagine di overlay, spostato a sinistra di 8 bit utilizzando la macro INDEXTOOVERLAYMASK. L'indice può essere zero per specificare nessuna immagine di sovrapposizione.
Accanto all'icona di un elemento viene visualizzata un'immagine di stato per indicare uno stato definito dall'applicazione. Le immagini di stato sono contenute in un elenco di immagini di stato specificato inviando un messaggio di TVM_SETIMAGELIST. Per impostare l'immagine dello stato di un elemento, includere il valore TVIS_STATEIMAGEMASK nella maschera di stato membro della struttura TVITEM. I bit da 12 a 15 del membro dello stato della struttura specificano l'indice nell'elenco delle immagini di stato dell'immagine da disegnare.
Per impostare l'indice dell'immagine di stato, usare INDEXTOSTATEIMAGEMASK. Questa macro accetta un indice e imposta i bit da 12 a 15 in modo appropriato. Per indicare che l'elemento non ha un'immagine di stato, impostare l'indice su zero. Questa convenzione indica che l'immagine zero nell'elenco di immagini di stato non può essere usata come immagine di stato. Per isolare i bit da 12 a 15 del membro stato , usare la maschera TVIS_STATEIMAGEMASK. Per altre informazioni sulla sovrimpressione e sullo stato delle immagini, vedere Tree-View elenchi di immagini.
Selezione dell'elemento
Un controllo ad albero notifica alla finestra principale quando la selezione passa da un elemento a un altro inviando i messaggi di notifica TVN_SELCHANGING e TVN_SELCHANGED. Entrambe le notifiche includono un valore che specifica se la modifica è il risultato di un clic del mouse o di una sequenza di tasti. Le notifiche includono anche informazioni sull'elemento che sta ottenendo la selezione e sull'elemento che sta perdendo la selezione. È possibile utilizzare queste informazioni per impostare gli attributi dell'elemento che dipendono dallo stato di selezione dell'elemento. La restituzione di TRUE in risposta a TVN_SELCHANGING impedisce la modifica della selezione e la restituzione di FALSE consente la modifica.
Un'applicazione può modificare la selezione inviando il messaggio di TVM_SELECTITEM.
Informazioni sull'elemento
I controlli visualizzazione albero supportano diversi messaggi che recuperano informazioni sugli elementi nel controllo .
Il messaggio TVM_GETITEM può recuperare l'handle e gli attributi di un elemento. Gli attributi di un elemento includono il suo stato corrente, gli indici nell'elenco di immagini del controllo delle immagini bitmap selezionate e non selezionate dell'elemento, un flag che indica se l'elemento ha elementi figlio, l'indirizzo della stringa di etichetta dell'elemento e il valore a 32 bit definito dall'applicazione.
Il messaggio TVM_GETNEXTITEM recupera l'elemento della visualizzazione albero che presenta la relazione specificata con l'elemento corrente. Il messaggio può recuperare l'elemento padre di un elemento, l'elemento visibile successivo o precedente, il primo elemento figlio e così via.
Il messaggio TVM_GETITEMRECT recupera il rettangolo di delimitazione per un elemento di visualizzazione albero. I messaggi TVM_GETCOUNT e TVM_GETVISIBLECOUNT recuperano rispettivamente un conteggio degli elementi in un controllo visualizzazione albero e un conteggio degli elementi che possono essere completamente visibili nella finestra del controllo visualizzazione albero. È possibile assicurarsi che un particolare elemento sia visibile usando il messaggio TVM_ENSUREVISIBLE.
Tree-View Elenchi di Immagini
A ogni elemento di un controllo di visualizzazione albero possono essere associate quattro immagini bitmap.
- Immagine, ad esempio una cartella aperta, visualizzata quando l'elemento è selezionato.
- Immagine, ad esempio una cartella chiusa, visualizzata quando l'elemento non è selezionato.
- Immagine di sovrimpressione disegnata in modo trasparente sull'immagine selezionata o non selezionata.
- Immagine di stato, che è un'immagine aggiuntiva visualizzata a sinistra dell'immagine selezionata o non selezionata. È possibile usare immagini di stato, ad esempio caselle di controllo selezionate e deselezionate, per indicare gli stati degli elementi definiti dall'applicazione.
Per impostazione predefinita, un controllo visualizzazione albero non visualizza immagini di elementi. Per visualizzare le immagini degli elementi, è necessario creare elenchi di immagini e associarli al controllo . Per altre informazioni sugli elenchi di immagini, vedere elenchi di immagini.
Un controllo visualizzazione albero può avere due elenchi di immagini: un elenco di immagini normale e un elenco di immagini di stato. Un elenco di immagini normale archivia le immagini selezionate, non selezionate e sovrapposte. Un elenco di immagini di stato memorizza le immagini di stato. Usare la funzione ImageList_Create per creare un elenco di immagini e usare altre funzioni dell'elenco di immagini per aggiungere bitmap all'elenco di immagini. Quindi, per associare l'elenco di immagini al controllo visualizzazione albero, usare il messaggio TVM_SETIMAGELIST. Il messaggio TVM_GETIMAGELIST recupera un handle a uno degli elenchi di immagini di un controllo visualizzazione ad albero. Questo messaggio è utile se è necessario aggiungere altre immagini all'elenco.
Oltre alle immagini selezionate e non selezionate, l'elenco di immagini normali di un controllo visualizzazione albero può contenere fino a quattro immagini sovrapposte. Le immagini sovrapposte sono identificate da un indice in base uno e sono progettate per essere disegnate in modo trasparente sulle immagini selezionate e non selezionate. Per assegnare un indice della maschera di sovrimpressione a un'immagine nell'elenco di immagini normali, chiamare la funzione ImageList_SetOverlayImage.
Per impostazione predefinita, tutti gli elementi visualizzano la prima immagine nell'elenco delle immagini normali per gli stati selezionati e non selezionati. Inoltre, per impostazione predefinita, gli elementi non visualizzano immagini sovrapposte o immagini di stato. È possibile modificare questi comportamenti predefiniti per un elemento inviando il messaggio di TVM_INSERTITEM o TVM_SETITEM. Questi messaggi usano la strutturaTVITEM per specificare gli indici dell'elenco di immagini per un elemento.
Per specificare le immagini selezionate e non selezionate di un elemento, impostare i bit TVIF_SELECTEDIMAGE e TVIF_IMAGE nel membro maschera della struttura TVITEM e specificare gli indici dall'elenco delle immagini normali del controllo nei membri iSelectImage e iImage. In alternativa, è possibile specificare il valore di I_IMAGECALLBACK in iSelectImage e iImage anziché specificare gli indici. In questo modo, il controllo interroga la finestra padre per ottenere un indice dell'elenco di immagini quando l'elemento viene ridisegnato. Il controllo invia il messaggio di notifica TVN_GETDISPINFO per recuperare l'indice.
Per associare un'immagine di sovrimpressione a un elemento, utilizzare la macro INDEXTOOVERLAYMASK per specificare un indice della maschera di sovrimpressione nello stato membro della struttura TVITEM dell'elemento. È necessario impostare anche i bit TVIS_OVERLAYMASK nel membro stateMask. Gli indici della maschera di sovrapposizione sono basati su uno; un indice pari a zero indica che non è stata specificata alcuna immagine di sovrimpressione.
Le immagini di stato vengono archiviate in un elenco di immagini di stato separate e identificate dal relativo indice. Per specificare l'elenco di immagini di stato, inviare un messaggio di TVM_SETIMAGELIST. A differenza del controllo visualizzazione elenco, che usa un indice basato su un solo per identificare le immagini dello stato, le immagini dello stato del controllo visualizzazione albero sono identificate da un indice in base zero. Tuttavia, un indice pari a zero indica che l'elemento non ha un'immagine di stato. Di conseguenza, l'immagine zero non può essere usata come immagine di stato. Per ulteriori informazioni sugli stati degli elementi e sulle immagini di stato, vedere Panoramica degli Stati degli Elementi Tree-View.
Operazioni di trascinamento della selezione
Un controllo ad albero notifica la finestra principale quando l'utente inizia a trascinare un elemento. La finestra padre riceve un messaggio di notifica TVN_BEGINDRAG quando l'utente inizia a trascinare un elemento con il pulsante sinistro del mouse e un messaggio di notifica TVN_BEGINRDRAG quando l'utente inizia a trascinare con il pulsante destro. È possibile impedire a un controllo visualizzazione albero di inviare queste notifiche assegnando al controllo visualizzazione albero lo stile TVS_DISABLEDRAGDROP.
Si ottiene un'immagine da visualizzare durante un'operazione di trascinamento usando il messaggio TVM_CREATEDRAGIMAGE. Il controllo ad albero crea una bitmap di trascinamento in base all'etichetta dell'elemento trascinato. Il controllo visualizzazione albero crea quindi un elenco di immagini, aggiunge la bitmap e restituisce l'handle all'elenco di immagini.
È necessario specificare il codice che trascina effettivamente l'elemento. Ciò comporta in genere l'uso delle funzionalità di trascinamento delle funzioni dell'elenco di immagini e l'elaborazione dei messaggi WM_MOUSEMOVE e WM_LBUTTONUP (o WM_RBUTTONUP) inviati alla finestra padre dopo l'avvio dell'operazione di trascinamento.
Se elementi nella visualizzazione ad albero di un controllo devono essere le destinazioni delle operazioni di trascina e rilascia, è necessario sapere quando il puntatore del mouse si trova su un elemento di destinazione. È possibile scoprire usando il messaggio TVM_HITTEST. Si specifica l'indirizzo di una struttura di TVHITTESTINFO che contiene le coordinate correnti del puntatore del mouse. Quando la funzione SendMessage restituisce, la struttura contiene un flag che indica la posizione del puntatore del mouse rispetto al controllo ad albero. Se il puntatore si trova su un elemento nel controllo visualizzazione albero, la struttura contiene anche l'handle per l'elemento.
È possibile indicare che un elemento è la destinazione di un'operazione di trascinamento della selezione utilizzando il messaggio TVM_SETITEM per impostare lo stato al valore TVIS_DROPHILITED. Un elemento con questo stato viene disegnato nello stile utilizzato per indicare una destinazione di rilascio.
Tree-View Messaggi di notifica di controllo
Un controllo ad albero invia i seguenti messaggi di notifica alla finestra principale in forma di messaggi WM_NOTIFY .
Notifica | Descrizione |
---|---|
TVN_BEGINDRAG | Segnala l'inizio di un'operazione di trascinamento. |
TVN_BEGINLABELEDIT | Segnala l'inizio della modifica delle etichette direttamente sul posto. |
TVN_BEGINRDRAG | Segnala che il pulsante destro del mouse ha avviato un'operazione di trascinamento. |
TVN_DELETEITEM | Segnala l'eliminazione di un elemento specifico. |
TVN_ENDLABELEDIT | Segnala la fine della modifica delle etichette. |
TVN_GETDISPINFO | Richiede informazioni richieste dal controllo visualizzazione albero per visualizzare un elemento. |
TVN_ITEMEXPANDED | Segnala che l'elenco di elementi figlio di un elemento padre è stato espanso o compresso. |
TVN_ITEMEXPANDING | Segnala che l'elenco di elementi figlio di un elemento padre sta per essere espanso o compresso. |
TVN_KEYDOWN | Segnala un evento della tastiera. |
TVN_SELCHANGED | Segnala che la selezione è cambiata da un elemento a un altro. |
TVN_SELCHANGING | Segnala che la selezione sta per essere modificata da un elemento a un altro. |
TVN_SETDISPINFO | Notifica a una finestra padre che deve aggiornare le informazioni che essa gestisce per un elemento. |
Elaborazione dei messaggi di controllo di default Tree-View
In questa sezione viene descritta la gestione dei messaggi della finestra eseguita da un controllo ad albero. I messaggi specifici dei controlli di visualizzazione albero vengono illustrati in altre sezioni di questo documento, pertanto non sono inclusi qui.
Messaggio | Elaborazione eseguita |
---|---|
WM_COMMAND | Elabora i messaggi di notifica del controllo di modifica EN_UPDATE e EN_KILLFOCUS e inoltra tutte le altre notifiche di controllo di modifica alla finestra padre. Non esiste alcun valore restituito. |
WM_CREATE | Alloca la memoria e inizializza le strutture di dati interne. Restituisce zero se ha esito positivo o -1 in caso contrario. |
WM_DESTROY | Libera tutte le risorse di sistema associate al controllo . Restituisce zero. |
WM_ENABLE | Abilita o disabilita il controllo. |
WM_ERASEBKGND | Cancella lo sfondo della finestra utilizzando il colore di sfondo corrente per il controllo ad albero. Restituisce TRUE. |
WM_GETDLGCODE | Restituisce una combinazione dei valori DLGC_WANTARROWS e DLGC_WANTCHARS. |
WM_GETFONT | Restituisce l'handle al tipo di carattere dell'etichetta corrente. |
WM_HSCROLL | Scorre il controllo della visualizzazione ad albero. Restituisce TRUE se si verifica lo scorrimento o FALSE in caso contrario. |
WM_KEYDOWN | Invia il messaggio di notifica TVN_KEYDOWN alla finestra padre per tutte le chiavi. Invia il messaggio di notifica NM_RETURN (visualizzazione albero) quando l'utente preme INVIO. Sposta il cursore quando l'utente preme i tasti di direzione o il tasto PAGE UP, PAGE DOWN, HOME, END o BACKSPACE. Scorre il controllo della visualizzazione ad albero quando l'utente preme il tasto CTRL in combinazione con gli altri tasti. Restituisce TRUE se viene elaborata una chiave o FALSE in caso contrario. |
WM_KILLFOCUS | Ridisegna l'elemento attivo, se presente, e invia una notifica di messaggio NM_KILLFOCUS (visualizzazione albero) alla finestra padre. |
WM_LBUTTONDBLCLK | Annulla la modifica delle etichette e, quando viene fatto doppio clic su un elemento, invia il messaggio di notifica NM_DBLCLK (visualizzazione albero) alla finestra padre. Se la finestra padre restituisce 0, il controllo visualizzazione albero attiva o disattiva lo stato espanso dell'elemento, inviando alla finestra padre i messaggi di notifica TVN_ITEMEXPANDING e TVN_ITEMEXPANDED. Non esiste alcun valore restituito. |
WM_LBUTTONDOWN | Attiva o disattiva lo stato espanso se l'utente ha fatto clic sul pulsante associato a un elemento padre. Se l'utente ha fatto clic su un'etichetta di elemento, il controllo visualizzazione albero seleziona e imposta il focus sull'elemento. Se l'utente sposta il mouse prima di rilasciare il pulsante del mouse, il controllo ad albero avvia un'operazione di trascinamento. Non esiste alcun valore restituito. |
WM_PAINT | Disegna l'area non valida del controllo visualizzazione albero. Restituisce zero. Se il parametro wParam non èNULL, il controllo presuppone che il valore sia un handle per un contesto di dispositivo (HDC) e disegna utilizzando tale contesto di dispositivo. |
WM_RBUTTONDOWN | Verifica se è stato fatto clic su un elemento ed è stata avviata un'operazione di trascinamento. Se l'operazione è iniziata, invia un messaggio di notifica TVN_BEGINRDRAG alla finestra padre ed evidenzia la destinazione di rilascio. In caso contrario, invia un NM_RCLICK (visualizzazione albero) messaggio di notifica alla finestra padre. Non esiste alcun valore restituito. |
WM_SETFOCUS | Ridipinge l'elemento focalizzato, se presente, e invia un messaggio di notifica NM_SETFOCUS alla finestra principale. |
WM_SETFONT | Salva l'handle del tipo di carattere specificato e aggiorna il controllo visualizzazione albero utilizzando il nuovo tipo di carattere. |
WM_SETREDRAW | Imposta o cancella l'indicatore di ridisegno. Il controllo visualizzazione albero viene ridisegnato dopo l'impostazione del flag di ridisegno. Restituisce zero. |
WM_SIZE | Ricompila le variabili interne che dipendono dalle dimensioni dell'area client del controllo visualizzazione albero. Restituisce TRUE. |
WM_STYLECHANGED | Annulla la modifica delle etichette e ridisegna il controllo visualizzazione albero utilizzando i nuovi stili. Restituisce zero. |
WM_SYSCOLORCHANGE | Ridisegna il controllo della visualizzazione ad albero utilizzando il nuovo colore, se il flag di ridisegno è impostato. Non esiste alcun valore restituito. |
WM_TIMER | Inizia a modificare un'etichetta di elemento. Se l'utente fa clic sull'etichetta dell'elemento attualmente attivo, il controllo visualizzazione albero imposta un timer invece di attivare immediatamente la modalità di modifica. Il timer consente alla visualizzazione albero di evitare di entrare in modalità di modifica se l'utente fa doppio clic sull'etichetta. Restituisce zero. |
WM_VSCROLL | Scorre il controllo visualizzazione albero. Restituisce TRUE se si verifica lo scorrimento o FALSE altrimenti. |
Argomenti correlati
-
ESEMPIO : CustDTv illustra un disegno personalizzato in un TreeView (Q248496)