Compartir a través de


Dibujo de imágenes de una lista de imágenes

Para dibujar una imagen, use la función miembro CImageList::Draw. Especificarás un puntero a un objeto de contexto de dispositivo, el índice de la imagen a dibujar, la ubicación en el contexto del dispositivo donde dibujar la imagen y un conjunto de banderas para indicar el estilo de dibujo.

Al especificar el estilo ILD_TRANSPARENT , Draw usa un proceso de dos pasos para dibujar una imagen enmascarada. En primer lugar, realiza una operación AND lógica en los bits de la imagen y los bits de la máscara. A continuación, realiza una operación XOR lógico entre los resultados de la primera operación y los bits de fondo del contexto del dispositivo de destino. Este proceso crea áreas transparentes en la imagen resultante; es decir, cada bit blanco de la máscara hace que el bit correspondiente de la imagen resultante sea transparente.

Antes de dibujar una imagen enmascarada en un fondo de color sólido, debe usar la función miembro SetBkColor para establecer el color de fondo de la lista de imágenes en el mismo color que el destino. Establecer el color elimina la necesidad de crear áreas transparentes en la imagen y permite Draw simplemente copiar la imagen en el contexto del dispositivo de destino, lo que da lugar a un aumento significativo del rendimiento. Para dibujar la imagen, especifique el estilo ILD_NORMAL al llamar a Draw.

Puede establecer el color de fondo de una lista de imágenes enmascaradas (CImageList) en cualquier momento para que se dibuje correctamente en cualquier fondo sólido. Establecer el color de fondo en CLR_NONE hace que las imágenes se dibujen de forma transparente de forma predeterminada. Para recuperar el color de fondo de una lista de imágenes, use la función miembro GetBkColor .

Los estilos ILD_BLEND25 y ILD_BLEND50 interpolan la imagen con el color de resaltado del sistema. Estos estilos son útiles si usa una imagen enmascarada para representar un objeto que el usuario puede seleccionar. Por ejemplo, puede usar el estilo ILD_BLEND50 para dibujar la imagen cuando el usuario la selecciona.

Una imagen sin máscara se copia en el contexto del dispositivo de destino mediante la operación ráster SRCCOPY. Los colores de la imagen aparecen igual independientemente del color de fondo del contexto del dispositivo. Los estilos de dibujo especificados en Draw tampoco tienen ningún efecto en la apariencia de una imagen sin máscara.

Además de la función miembro Draw, otra función DrawIndirect amplía la capacidad de representar una imagen. DrawIndirect toma, como parámetro, una estructura IMAGELISTDRAWPARAMS . Esta estructura se puede usar para personalizar la representación de la imagen actual, incluido el uso de códigos de operación ráster (ROP). Para más información sobre los códigos ROP, consulte Códigos de operación de trama and Mapas de bits como pinceles en Windows SDK.

Consulte también

Uso de CImageList
Mandos