Operazioni di trascinamento del controllo Tree
Un controllo struttura ad albero (Problemi) invia una notifica quando l'utente inizia per trascinare un elemento. Il controllo invia un messaggio di notifica di TVN_BEGINDRAG quando l'utente inizia trascinando un elemento con il pulsante sinistro del mouse e 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 l'immagine da visualizzare durante un'operazione di trascinamento chiamare la funzione membro di CreateDragImage. Il controllo struttura ad albero creare una bitmap di trascinamento in base all'etichetta dell'elemento trascinato. Il controllo struttura ad albero crea un elenco immagini, aggiungere la bitmap e restituisce un puntatore all'oggetto di CImageList.
È necessario fornire il codice effettivamente trascinare l'elemento. In genere ciò prevede l'utilizzo delle funzionalità trascinare le funzionielenco immagini ed 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 funzionielenco immagini, vedere CImageListin riferimenti alla libreria MFC e Elenchi di immagini in Windows SDK. Per ulteriori informazioni sul trascinamento di un elemento del controllo 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. Al completamento della funzione, 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.