Compartilhar via


Arrastar responsabilidades de origem

A origem drag é responsável pelas seguintes tarefas:

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

A tarefa principal é criar um objeto de transferência de dados que exponha as interfaces IDataObject e IDropSource. A fonte de arrastar 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 origem de arrastar é responsável por definir o ponteiro do mouse e, se apropriado, por fornecer comentários de origem adicionais ao usuário. A origem de arrastar não pode fornecer nenhum feedback que rastreie a posição do mouse a não ser definindo o ponteiro real (consulte a função SetCursor). Essa regra deve ser aplicada para evitar conflitos com o feedback fornecido pelo destino de queda. (Uma origem de arrastar também pode ser um destino de soltar. Ao cair sobre si mesmo, a fonte/destino pode, é claro, fornecer feedback do alvo para rastrear a posição do mouse. Nesse caso, no entanto, é o destino de queda que rastreia o mouse, não a origem.) Com base no feedback oferecido pelo destino de queda, a fonte define um ponteiro apropriado.

Arrastar e soltar