Desenho de imagens de uma lista de imagem
Para desenhar uma imagem, use o CImageList::Draw função de membro.Você especificará um ponteiro para um objeto de contexto de dispositivo, o índice da imagem para desenhar o local no contexto de dispositivo no qual desenhar a imagem e um conjunto de sinalizadores para indicar o estilo de desenho.
Quando você especificar o ILD_TRANSPARENT estilo, Desenhar usa um processo de duas etapas para desenhar uma imagem mascarada.Primeiro, ele executa uma lógica- E operação em bits da imagem e os bits da máscara.Em seguida, ele executa uma operação lógica XOR nos resultados da primeira operação e os bits de plano de fundo do contexto de dispositivo de destino.Esse processo cria áreas transparentes na imagem resultante. ou seja, cada bit branco na máscara faz com que o bit correspondente na imagem resultante para ser transparente.
Antes de desenhar uma imagem mascarada em um fundo de cor sólida, você deve usar o SetBkColor função de membro para definir a cor de fundo da lista de imagem para a mesma cor como destino.Definindo a cor elimina a necessidade de criar áreas transparentes da imagem e permite Desenhar simplesmente copiar imagem para o contexto de dispositivo de destino, resultando em um aumento significativo no desempenho.Para desenhar a imagem, especifique o ILD_NORMAL de estilo quando você chamar Desenhar.
Você pode definir a cor de fundo para uma lista de imagem mascarado (CImageList) a qualquer momento, de modo que ele desenha corretamente em qualquer plano de fundo sólido.Definindo a cor de fundo CLR_NONE faz com que imagens ser desenhadas de forma transparente por padrão.Para recuperar a cor de fundo de uma lista de imagem, use o GetBkColor função de membro.
O ILD_BLEND25 e ILD_BLEND50 estilos de pontilhamento a imagem com a cor de realce do sistema.Esses estilos são úteis se você usar uma imagem mascarada para representar um objeto que o usuário pode selecionar.Por exemplo, você pode usar o ILD_BLEND50 estilo para desenhar a imagem quando o usuário seleciona-lo.
Uma imagem nonmasked é copiada para o contexto de dispositivo de destino usando o SRCCOPY operação de varredura.As cores na imagem aparecem a mesma, independentemente da cor do plano de fundo do contexto de dispositivo.Estilos de desenho especificados em Desenhar também não têm nenhum efeito sobre a aparência de uma imagem nonmasked.
Com a função de membro Draw outra função, DrawIndirect, amplia a capacidade de processar uma imagem.DrawIndirectObtém, como um parâmetro, um IMAGELISTDRAWPARAMS estrutura.Essa estrutura pode ser usada para personalizar o processamento da imagem atual, incluindo o uso de códigos de operação (ROP) de varredura.Para obter mais informações sobre códigos ROP, consulte códigos de operação de varredura e Bitmaps como pincéis na Windows SDK.