Partilhar via


Arrastar responsabilidades de origem

A fonte de arrasto é responsável pelas seguintes tarefas:

  • Fornecendo um objeto de transferência de dados para o destino de descarte que expõe o IDataObject e IDropSource interfaces.
  • Geração de feedback de ponteiro e fonte.
  • Determinar quando a operação de arrastar foi cancelada ou ocorreu uma operação de soltar.
  • Executar qualquer ação nos dados originais causada pela operação de queda, como excluir os dados ou criar um link para eles.

A tarefa principal é criar um objeto de transferência de dados que exponha o IDataObject e IDropSource interfaces. A fonte de arraste pode ou não incluir uma cópia dos dados selecionados. Incluí-lo não é obrigatório, mas isso ajuda a proteger contra alterações inadvertidas e permite que o código de operações da Área de Transferência seja idêntico ao código de arrastar e soltar.

Enquanto uma operação de arrastar está em andamento, a fonte de arrasto é responsável por definir o ponteiro do mouse e, se apropriado, por fornecer feedback de origem adicional para o usuário. A fonte de arrasto não pode fornecer nenhum feedback que rastreie a posição do mouse além de realmente definir o ponteiro real (consulte a funçãoSetCursor). Esta regra deve ser aplicada para evitar conflitos com o feedback fornecido pelo alvo de queda. (Uma fonte de arrasto também pode ser um destino de soltar. Ao cair sobre si mesmo, a fonte/destino pode, é claro, fornecer feedback de destino para rastrear a posição do mouse. Neste caso, no entanto, é o alvo de queda rastreando o mouse, não a fonte.) Com base no feedback oferecido pelo destino de queda, a fonte define um ponteiro apropriado.

arrastar e soltar