Operazioni di trascinamento della selezione del controllo struttura ad albero
Un controllo struttura ad albero (CTreeCtrl) invia una notifica quando l'utente inizia a trascinare un elemento.Il controllo viene visualizzato un messaggio di notifica di TVN_BEGINDRAG quando l'utente avvia trascinando un elemento con il pulsante sinistro del mouse su un messaggio di notifica di TVN_BEGINRDRAG quando l'utente inizia il trascinamento con il pulsante destro.È possibile impedire un controllo struttura ad albero dall'invio delle notifiche fornendo al controllo di struttura ad albero lo stile di TVS_DISABLEDRAGDROP .
Ottenere un'immagine da visualizzare durante l'operazione di trascinamento chiamare la funzione membro di CreateDragImage .Il controllo di struttura ad albero crea una bitmap di trascinamento verrà visualizzato su di essa nell'elemento trascinato.Quindi il controllo di struttura ad albero crea un elenco immagini, aggiunge la bitmap e restituisce un puntatore all'oggetto di CImageList .
È necessario fornire il codice effettivamente trascina l'elemento.In genere ciò prevede l'utilizzo delle funzionalità trascinare le funzioni dell'elenco immagini e elaborare i messaggi di WM_MOUSEMOVE e di WM_LBUTTONUP (o WM_RBUTTONUP) inviati dopo l'operazione di trascinamento è stata avviata.Per ulteriori informazioni sulle funzioni dell'elenco immagini, vedere CImageListin riferimenti alla libreria MFC e elenchi di immagini in Windows SDK.Per ulteriori informazioni su trascinare un elemento del controllo di struttura ad albero, vedere Trascinare l'elemento della visualizzazione struttura ad albero, anche in Windows SDK.
Se gli elementi in un controllo struttura ad albero devono essere destinazioni di un'operazione di trascinamento della selezione, è necessario sapere quando il cursore del mouse su un elemento di destinazione.È possibile ottenere chiamando la funzione membro di HitTest .Si specifica un punto e integer, o l'indirizzo di una struttura di TVHITTESTINFO che include le coordinate corrente del cursore del mouse.Quando la funzione restituisce, integer o una struttura contiene un flag che indica la posizione del cursore del mouse relativa al controllo di struttura ad albero.Se il cursore si trova sopra un elemento nel controllo struttura ad albero, la struttura contiene l'handle dell'elemento anche.
È possibile indicare che un elemento è la destinazione di un'operazione di trascinamento della selezione chiamando la funzione membro di SetItem per impostare lo stato sul valore di TVIS_DROPHILITED .Un elemento che presenta questo stato viene disegnato nello stile utilizzato per indicare una destinazione di trascinamento della selezione.