Arrastar responsabilidades de origem
A fonte de arrastar é responsável pelas seguintes tarefas:
- Fornecendo um objeto de transferência de dados para o destino de descarte que expõe as interfaces IDataObject e IDropSource.
- Gerando comentários de ponteiro e de origem.
- Determinando quando a operação de arrastar foi cancelada ou ocorreu uma operação de soltar.
- Executar qualquer ação nos dados originais causados pela operação de descarte, como excluir os dados ou criar um link para ele.
A tarefa principal é criar um objeto de transferência de dados que expõe as interfacesIDataObjecte 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, para fornecer comentários adicionais de origem ao usuário. A fonte de arrastar não pode fornecer comentários que acompanhem a posição do mouse que não seja, na verdade, definindo o ponteiro real (consulte a função SetCursor). Essa regra deve ser imposta para evitar conflitos com os comentários fornecidos pelo destino suspenso. (Uma origem de arrastar também pode ser um destino de soltar. Ao descartar em si mesmo, a origem/destino pode, naturalmente, fornecer comentários de destino para acompanhar a posição do mouse. Nesse caso, no entanto, é o destino de soltar que controla o mouse, não a origem.) Com base nos comentários oferecidos pelo destino suspenso, a origem define um ponteiro apropriado.
Tópicos relacionados