Partager via


Dessin d'images à partir d'une liste d'images

Pour dessiner une image, utilisez la fonction membre CImageList ::D raw . Spécifiez un pointeur vers un objet de contexte de périphérique, l’index de l’image à dessiner, l’emplacement dans le contexte de périphérique où dessiner l’image et un jeu d’indicateurs pour désigner le style de dessin.

Lorsque vous spécifiez le style ILD_TRANSPARENT , Draw utilise un processus en deux étapes pour dessiner une image masquée. En premier lieu, il effectue une opération AND logique sur les bits de l'image et les bits du masque. Ensuite, il exécute une opération XOR logique sur les résultats de la première opération et les bits d'arrière-plan du contexte du périphérique de destination. Ce processus crée des zones transparentes dans l'image résultante ; autrement dit, chaque bit blanc dans le masque rend le bit correspondant dans l'image résultante transparent.

Avant de dessiner une image masquée sur un arrière-plan de couleur unie, vous devez utiliser la fonction membre SetBkColor pour définir la couleur d’arrière-plan de la liste d’images sur la même couleur que la destination. La définition de la couleur élimine la nécessité de créer des zones transparentes Draw dans l’image et permet de copier simplement l’image dans le contexte de l’appareil de destination, ce qui entraîne une augmentation significative des performances. Pour dessiner l’image, spécifiez le style ILD_NORMAL lorsque vous appelez Draw.

Vous pouvez définir la couleur d’arrière-plan d’une liste d’images masquées (CImageList) à tout moment afin qu’elle dessine correctement sur n’importe quel arrière-plan unie. La définition de la couleur d’arrière-plan sur CLR_NONE entraîne le dessin transparent des images par défaut. Pour récupérer la couleur d’arrière-plan d’une liste d’images, utilisez la fonction membre GetBkColor .

Les styles ILD_BLEND25 et ILD_BLEND50 dissifient l’image avec la couleur de surbrillance du système. Ces styles sont utiles si vous utilisez une image masquée pour représenter un objet que l'utilisateur peut sélectionner. Par exemple, vous pouvez utiliser le style ILD_BLEND50 pour dessiner l’image lorsque l’utilisateur le sélectionne.

Une image non masquée est copiée dans le contexte de l’appareil de destination à l’aide de l’opération SRCCOPY raster. Les couleurs dans l'image s'affichent de la même façon indépendamment de la couleur d'arrière-plan du contexte de périphérique. Les styles de dessin spécifiés n’ont Draw pas non plus d’effet sur l’apparence d’une image non masquée.

En plus de la fonction membre Draw, une autre fonction, DrawIndirect, étend la possibilité de restituer une image. DrawIndirect prend, en tant que paramètre, une structure IMAGELISTDRAWPARAMS . Cette structure peut être utilisée pour personnaliser le rendu de l'image actuelle, notamment l'utilisation de codes d'opération de rastérisation (ROP, Raster Operation). Pour plus d’informations sur les codes ROP, consultez Les codes d’opération raster et les bitmaps en tant que pinceaux dans le Kit de développement logiciel (SDK) Windows.

Voir aussi

Utilisation de CImageList
Contrôles