Partager via


Dessin d’images à partir d’une liste d’images

Pour dessiner une image, utilisez la fonction membre CImageList::Draw. Vous allez spécifier un pointeur vers un objet de contexte d’appareil, l’index de l’image à dessiner, l’emplacement dans le contexte de l’appareil auquel dessiner l’image et un ensemble d’indicateurs pour indiquer 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. Tout d'abord, il effectue une opération ET logique sur les bits de l’image et ceux du masque. Ensuite, il effectue une opération logique-XOR sur les résultats de la première opération et les bits d’arrière-plan du contexte de l’appareil de destination. Ce processus crée des zones transparentes dans l’image résultante ; autrement dit, chaque bit blanc dans le masque entraîne la transparence du bit correspondant dans l’image résultante.

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. Si vous définissez la couleur d’arrière-plan sur CLR_NONE , les images sont dessinées de manière transparente 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 and ILD_BLEND50 trament l’image avec la couleur de surbrillance 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 raster SRCCOPY. Les couleurs de l’image apparaissent de la même façon, quelle que soit la couleur d’arrière-plan du contexte de l’appareil. 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, y compris l’utilisation de codes 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