Operações de arrastar e soltar do controle de árvore
Um controle de árvore (CTreeCtrl) envia uma notificação quando o usuário começa a arrastar um item.O controle envia uma TVN_BEGINDRAG mensagem de notificação quando o usuário começa a arrastar um item com o botão esquerdo do mouse e um TVN_BEGINRDRAG mensagem de notificação quando o usuário começa a arrastar com o botão direito.Impedir que um controle de árvore enviar essas notificações, fornecendo o controle de árvore de TVS_DISABLEDRAGDROP estilo.
Obtenha uma imagem para exibir durante uma operação de arrastar, chamando o CreateDragImage função de membro.O controle de árvore cria um bitmap arrastar com base no rótulo do item sendo arrastado.Em seguida, o controle de árvore cria uma lista de imagem, adiciona o bitmap e retorna um ponteiro para o CImageList objeto.
Você deve fornecer o código que realmente arrasta o item.Isso normalmente envolve usando os recursos de arrastar as funções de lista de imagem e processamento de WM_MOUSEMOVE e WM_LBUTTONUP (ou WM_RBUTTONUP) mensagens enviadas depois de iniciada a operação de arrastar.Para obter mais informações sobre as funções de lista de imagem, consulte CImageList na Referência MFC e Imagem lista na Windows SDK.Para obter mais informações sobre como arrastar um item de controle de árvore, consulte arrastando o Item de exibição de árvore, também na Windows SDK.
Se os itens em um controle de árvore são alvos de uma operação de arrastar e soltar, você precisa saber quando o cursor do mouse está sobre um item de destino.Você pode descobrir chamando o HitTest função de membro.Especifique um ponto e inteiro ou o endereço de um TVHITTESTINFO estrutura que contém as atuais coordenadas do cursor do mouse.Quando a função retorna, inteiro ou estrutura contém um sinalizador que indica o local do cursor do mouse em relação ao controle de árvore.Se o cursor está sobre um item no controle de árvore, a estrutura contém o identificador do item também.
Você pode indicar que um item é o destino de uma operação de arrastar e soltar chamando o SetItem função de membro para definir o estado para o TVIS_DROPHILITED valor.Um item que tem esse estado é desenhado no estilo usado para indicar um destino de arrastar e soltar.