Par l'icône de non-largage, je veux dire le cercle avec une barre oblique indiquant que vous ne pouvez pas déposer à l'endroit indiqué. Quelle fonction est responsable du déclenchement de ce changement d'icône?Qu'est-ce qui provoque la modification d'un élément déplacé OLE DoDragDrop vers l'icône de suppression par-dessus une cible de dépôt?
Répondre
Je pense que ce excerpt donne la réponse:
Modification du pointeur de la souris pour indiquer comment un contrôle va répondre si les données sont déposées sur elle implique deux étapes: déterminer quel type de données est dans l'objet DataObject en utilisant la méthode GetFormat, un puis définissez l'argument d'effet de l'événement OLEDragOver pour indiquer à la source quels effets sont autorisés pour ce contrôle.
L'événement OLEDragOver
Lorsqu'un OLEDropMode de contrôle cible la propriété est définie sur Manuel, l'événement OLEDragOver se déclenche chaque fois que données glissées passe sur le contrôle .
L'argument de l'effet de l'événement OLEDragOver permet de spécifier les mesures seraient prises si l'objet était a chuté. Lorsque cette valeur est définie, l'événement OLEGiveFeedback de la source est déclenché . L'événement OLEGiveFeedback contient son propre argument effet, qui est utilisé pour fournir visuelle rétroaction à l'utilisateur sur les mesures seront prises lorsque la sélection est traîné - à savoir, le pointeur de la souris est changé pour indiquer une copie, déplacer ou action "aucune baisse".
alt text http://img188.imageshack.us/img188/3531/dragseqdrag.gif
Vérifiez la fonction DragEnter dans l'interface IDropTarget COM et la fonction GiveFeedback dans l'interface IDropSource