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.