Partager via


Faire glisser des images d'une liste d'images

CImageList inclut des fonctions pour faire glisser une image à l'écran.Les fonctions de glissement ne se déplacent une image facilement, en couleur, et sans le clignotement du curseur.Des images masquées et démasquées peuvent être faites glisser.

La fonction membre de BeginDrag lance une opération glisser.Les paramètres sont l'index de l'image pour faire glisser et l'emplacement de la zone réactive dans l'image.La zone réactive est un pixel unique que les fonctions de glissement identifient comme emplacement exact d'écran de l'image.En général, une application définit la zone réactive afin qu'elle coïncide avec la zone réactive du curseur de la souris.La fonction membre de DragMove déplace l'image vers un nouvel emplacement.

La fonction membre de DragEnter définit la position initiale de l'image glisser dans une fenêtre et dessine l'image à la position.Les paramètres sont un pointeur dans la fenêtre dans laquelle dessiner l'image et un point qui spécifie les détails de la position d'origine dans la fenêtre.Les coordonnées sont par rapport à l'angle supérieur gauche de la fenêtre, pas la zone cliente.Il en va de même pour tous les image-faire glisser une fonction que la prise coordonne comme paramètres.Cela signifie que vous devez compenser les largeurs des éléments de fenêtre, tels que la bordure, la barre de titre, et la barre de menus, en spécifiant les coordonnées.Si vous spécifiez un handle de fenêtre de NULL en appelant DragEnter, les fonctions de glissement dessine l'image dans le contexte de périphérique associé à la fenêtre du bureau, et les coordonnées sont par rapport à l'angle supérieur gauche de l'écran.

DragEnter verrouille toutes les autres mises à jour dans la fenêtre données pendant l'opération glisser.Si vous devez faire tout dessin pendant une opération de glissement, telles que la mise en surbrillance la cible d'une opération de glisser-déplacer, vous pouvez masquer temporairement l'image glissées à l'aide de la fonction membre de DragLeave .Vous pouvez également utiliser la fonction membre de DragShowNoLock .

Appelez EndDrag lorsque vous avez fini faisant glisser l'image.

La fonction membre de SetDragCursorImage crée une nouvelle image glisser en combinant l'image données (en général une image de curseur de la souris) avec l'image glisser actuelle.Comme les fonctions de glissement utilisent la nouvelle image pendant une opération de glissement, vous devez utiliser la fonction de ShowCursor windows pour masquer le curseur de la souris réel après avoir appelé SetDragCursorImage.Sinon, le système peut sembler avoir deux curseurs de souris pour la durée de l'opération glisser.

Lorsqu'une application appelle BeginDrag, le système crée une liste d'images temporaire et interne et copie l'image glisser spécifiée à la liste interne.Vous pouvez récupérer un pointeur vers la liste temporaire d'image glisser à l'aide de la fonction membre de GetDragImage .La fonction récupère également la position actuelle de glisser-déplacer et l'offset de l'image glisser par rapport à la position de glisser-déplacer.

Voir aussi

Référence

Utiliser CImageList

Concepts

Contrôles (MFC)