Operaciones de arrastrar y colocar del control de árbol
Un control de árbol (CTreeCtrl) envía una notificación cuando el usuario inicia para arrastrar un elemento. El control envía un mensaje de notificación de TVN_BEGINDRAG cuando el usuario comienza arrastrando un elemento con el botón primario y un mensaje de notificación de TVN_BEGINRDRAG cuando el usuario comienza arrastrando con el botón secundario. Puede evitar que un control de árbol envíe estas notificaciones dando al control de árbol el estilo de TVS_DISABLEDRAGDROP .
Se obtiene una imagen para mostrar durante una operación de arrastre llamando a la función miembro de CreateDragImage . El control de árbol crea un mapa de bits que arrastra basado en la etiqueta del elemento que se arrastra. El control de árbol crea una lista de imágenes, agrega el mapa de bits a, y devuelve un puntero al objeto de CImageList .
Debe proporcionar código que arrastra realmente el elemento. Esto implica normalmente el uso de las funciones que arrastre de las funciones de la lista de imágenes y el procesamiento de los mensajes de WM_MOUSEMOVE y de WM_LBUTTONUP (o WM_RBUTTONUP) enviados después de iniciarse la operación de arrastrar. Para obtener más información sobre las funciones de la lista de imágenes, vea CImageList en la referencia de MFC y Listas de imágenes en Windows SDK. Para obtener más información sobre arrastrar un elemento del control de árbol, vea Arrastrar el elemento de vista de árbol, también en Windows SDK.
Si los elementos en un control de árbol son ser destinos de una operación de arrastrar y colocar, necesita saber cuándo el cursor está en un elemento de destino. Puede averiguar llamando a la función miembro de HitTest . Especifica un punto y el entero, o la dirección de una estructura de TVHITTESTINFO que contiene las coordenadas actuales del cursor. Cuando finaliza la función, integer o estructura contiene un marcador que indica la ubicación del cursor en relación con el control de árbol. Si el cursor está sobre un elemento en el control de árbol, la estructura contiene el identificador de elemento también.
Puede indicar que un elemento es el destino de una operación de arrastrar y colocar llamando a la función miembro de SetItem para establecer el estado en el valor de TVIS_DROPHILITED . Un elemento que tiene este estado se dibuja en el estilo usado para indicar un destino de arrastrar y colocar.