Partager via


Faire glisser les responsabilités de la source

La source de glissement est responsable des tâches suivantes :

  • Fourniture d’un objet de transfert de données pour la cible de suppression qui expose les interfaces IDataObject et IDropSource.
  • Génération de pointeur et de commentaires sources.
  • Détermination du moment où l’opération de glissement a été annulée ou qu’une opération de déplacement s’est produite.
  • Exécution d’une action sur les données d’origine provoquées par l’opération de suppression, telle que la suppression des données ou la création d’un lien vers celui-ci.

La tâche principale consiste à créer un objet de transfert de données qui expose les interfacesIDataObjectet IDropSource. La source de glissement peut inclure ou non une copie des données sélectionnées. L’inclusion n’est pas obligatoire, mais cela permet de se protéger contre les modifications accidentelles et permet au code des opérations du Presse-papiers d’être identique au code glisser-déplacer.

Pendant qu’une opération de glissement est en cours, la source de glissement est chargée de définir le pointeur de la souris et, le cas échéant, de fournir des commentaires de source supplémentaires à l’utilisateur. La source de glissement ne peut pas fournir de commentaires qui suit la position de la souris autre que en définissant réellement le pointeur réel (voir la fonction SetCursor). Cette règle doit être appliquée pour éviter les conflits avec les commentaires fournis par la cible de suppression. (Une source de glissement peut également être une cible de déplacement. Lors de la suppression sur elle-même, la source/la cible peut, bien sûr, fournir des commentaires cibles pour suivre la position de la souris. Dans ce cas, toutefois, il s’agit du suivi de la cible de déplacement de la souris, et non de la source.) En fonction des commentaires proposés par la cible de suppression, la source définit un pointeur approprié.

glisser-déplacer