Gráfico Imágenes de una lista de Imágenes
Para dibujar una imagen, use la función miembro de CImageList::Draw .Especificará un puntero a un objeto de contexto del dispositivo, el índice de la imagen para dibujar, la ubicación en el contexto del dispositivo en el que se va a dibujar la imagen, y un conjunto de indicadores para indicar el estilo del gráfico.
Cuando especifica el estilo de ILD_TRANSPARENT , Draw utiliza un proceso de dos pasos para dibujar una imagen enmascarada.Primero, realiza una operación AND en fragmentos de la imagen y los bits de la máscara.Realiza una operación XOR de en los resultados de la primera operación y los bits del fondo del contexto del dispositivo de destino.Este proceso crea áreas transparente en la imagen resultante; es decir, cada bit blanco en la máscara hace el bit correspondiente de la imagen resultante sea transparente.
Antes de mostrar una imagen enmascarada sobre un fondo de color sólido, debe utilizar la función miembro de SetBkColor para establecer el color de fondo de la imagen que aparece al mismo color que el destino.Establecer el color elimina la necesidad de crear áreas transparente en la imagen y permite a Draw para copiar la imagen al contexto del dispositivo de destino, lo que da como resultado un aumento significativo en el rendimiento.Para dibujar la imagen, especifique el estilo de ILD_NORMAL cuando se llama a Draw.
Puede establecer el color de fondo para una imagen enmascarada lista (CImageList) en cualquier momento de modo que dibuja correctamente en cualquier fondo sólido.Establecer el color de fondo a CLR_NONE hace que las imágenes que se va a dibujar transparente predeterminadamente.Para recuperar el color de fondo de una imagen, use la función miembro de GetBkColor .
Los estilos de ILD_BLEND25 y de ILD_BLEND50 interpolados la imagen con el color de resaltado del sistema.Estos estilos son útiles si utiliza una imagen enmascarada para representar un objeto que el usuario puede seleccionar.Por ejemplo, puede utilizar el estilo de ILD_BLEND50 para dibujar la imagen cuando el usuario lo selecciona.
Una imagen nonmasked se copia en el contexto del dispositivo de destino mediante la operación de la trama de SRCCOPY .Los colores de la imagen tienen el mismo independientemente del color de fondo del contexto del dispositivo.Los estilos de dibujo especificados en Draw también no tienen ningún efecto en la apariencia de una imagen nonmasked.
Además de la función miembro de dibujo, otra función, DrawIndirect, amplía la capacidad de generar una imagen.DrawIndirect toma, como parámetro, una estructura de IMAGELISTDRAWPARAMS .Esta estructura se puede utilizar para personalizar la representación de la imagen actual, incluidos los códigos de operación (ROP) de la trama.Para obtener más información sobre códigos de dispositivo de protección en caso de volcamiento, vea códigos de operación de la trama y Mapas de bits como Pinceles en Windows SDK.