Compartilhar via


Arrastar e soltar

Arrastar e soltar refere-se a transferências de dados nas quais um mouse ou outro dispositivo apontador é usado para especificar a fonte de dados e seu destino. Em uma operação típica de arrastar e soltar, um usuário seleciona o objeto a ser transferido movendo o ponteiro do mouse para ele e mantendo pressionado o botão esquerdo ou algum outro botão designado para essa finalidade. Enquanto continua mantendo pressionado o botão, o usuário inicia a transferência arrastando o objeto para seu destino, que pode ser qualquer contêiner OLE. Arrastar e soltar fornece exatamente a mesma funcionalidade que a área de transferência OLE, copiar e colar, mas adiciona feedback visual e elimina a necessidade de menus. Na verdade, se um aplicativo suporta copiar e colar na área de transferência, pouco extra é necessário para suportar arrastar e soltar.

Durante uma operação de arrastar e soltar OLE, as três partes separadas de código a seguir são usadas.

Fonte de código de arrastar e soltar Implementação e utilização
Interface IDropSource
Implementado pelo objeto que contém os dados arrastados, conhecido como origem de arraste.
Interface IDropTarget
Implementado pelo objeto que se destina a aceitar o drop, conhecido como destino de soltar.
Função DoDragDrop
Implementado pelo OLE e usado para iniciar uma operação de arrastar e soltar. Depois que a operação está em andamento, ele facilita a comunicação entre a fonte de arraste e o destino de soltar.

As interfaces IDropSource e IDropTarget podem ser implementadas em um contêiner ou em um aplicativo objeto. A função de origem de arrastar ou destino de soltar não está limitada a qualquer tipo de aplicativo OLE.

A função OLE DoDragDrop implementa um loop que rastreia o movimento do mouse e do teclado até que o arrasto seja cancelado ou ocorra uma queda. DoDragDrop é a função-chave no processo de arrastar e soltar, facilitando a comunicação entre a origem do arraste e o destino do solte.

Durante uma operação de arrastar e soltar, três tipos de comentários podem ser exibidos ao usuário.

Tipo de feedback Descrição
Feedback da fonte
Fornecido pela fonte de arraste, o feedback da fonte indica que os dados estão sendo arrastados e não são alterados durante o curso do arrasto. Normalmente, os dados são realçados para sinalizar que foram selecionados.
Feedback do ponteiro
Fornecido pela fonte de arraste, o feedback do ponteiro indica o que acontece se o mouse for liberado a qualquer momento. O feedback do ponteiro muda continuamente à medida que o usuário move o mouse e/ou pressiona uma tecla modificadora. Por exemplo, se o ponteiro for movido para uma janela que não pode aceitar uma queda, o ponteiro mudará para o símbolo "não permitido".
Feedback do alvo
Fornecido pelo destino de queda, o feedback do alvo indica onde a queda deve ocorrer.

Para obter mais informações, consulte Arrastar responsabilidades de origem.

Transferência de dados