CImageList::DrawIndirect
Chamar essa função de membro para desenhar uma imagem de uma lista de imagem.
BOOL DrawIndirect(
IMAGELISTDRAWPARAMS* pimldp
);
BOOL DrawIndirect(
CDC* pDC,
int nImage,
POINT pt,
SIZE sz,
POINT ptOrigin,
UINT fStyle = ILD_NORMAL,
DWORD dwRop = SRCCOPY,
COLORREF rgbBack = CLR_DEFAULT,
COLORREF rgbFore = CLR_DEFAULT,
DWORD fState = ILS_NORMAL,
DWORD Frame = 0,
COLORREF crEffect = CLR_DEFAULT
);
Parâmetros
pimldp
Um ponteiro a estrutura de IMAGELISTDRAWPARAMS que contém informações sobre a operação de desenho.pDC
Um ponteiro para o contexto do dispositivo de destino. Você deve excluir este objeto de CDC quando você terminar com ele.nImage
O índice com base zero de imagem a ser desenhada.pt
Uma estrutura de PONTO que contém as coordenadas de x e y onde a imagem será desenhada.sz
Uma estrutura de TAMANHO que indica o tamanho da imagem a ser desenhada.ptOrigin
Uma estrutura de PONTO que contém as coordenadas x e y que especificam o canto superior esquerdo da operação de desenho em relação à imagem próprio. Os pixels de imagem que estão à esquerda acima da coordenada x e y coordenada não são desenhados.fStyle
Sinaliza especificar o estilo de desenho e, opcionalmente, a imagem de sobreposição. Consulte a seção comentários para obter informações sobre a sobreposição criar imagem. A implementação de opção MFC, ILD_NORMAL, desenha uma imagem usando a cor do plano de fundo para a lista de imagem. Se a cor do plano de fundo é o valor de CLR_NONE , a imagem é desenhada transparente usando uma máscara.Outros estilos possíveis são descritos no fStyle membro de estrutura de IMAGELISTDRAWPARAMS .
dwRop
Valor especificando um código de quadriculação- operação. Esses códigos definem como os dados de cor para o retângulo de origem ficarão combinados com os dados de cor para que o retângulo alvo obtenha a cor final. Os MFC padrão, a implementação SRCCOPY, imprime o retângulo de origem diretamente ao retângulo alvo. Esse parâmetro é ignorado se o parâmetro de fStyle não inclui o sinalizador de ILD_ROP .Outros valores possíveis são descritos no dwRop membro de estrutura de IMAGELISTDRAWPARAMS .
rgbBack
A cor do plano de fundo de imagem, por padrão CLR_DEFAULT. Este parâmetro pode ser um valor de RGB ou definido dos seguintes valores:Valor
Significado
CLR_DEFAULT
Cor do plano de fundo padrão. A imagem é desenhada usando a cor do plano de fundo da lista de imagem.
CLR_NONE
Nenhuma cor de plano de fundo. a imagem é desenhada transparente.
rgbFore
A imagem cor de primeiro plano, por padrão CLR_DEFAULT. Este parâmetro pode ser um valor de RGB ou definido dos seguintes valores:Valor
Significado
CLR_DEFAULT
Padrão cor de primeiro plano. A imagem é desenhada usando a cor de realce do sistema como a cor de primeiro plano.
CLR_NONE
Nenhuma cor de combinação. A imagem é misto com a cor do contexto do dispositivo de destino.
Esse parâmetro é usado somente se fStyle inclui o sinalizador de ILD_BLEND25 ou de ILD_BLEND50 .
fState
Sinalizador que especifica o estado de desenho. Esse membro pode conter um ou vários sinalizadores de estado da lista de imagem.Frame
Afeta o comportamento de efeitos saturam e de Alpha- misturas.Quando usado com ILS_SATURATE, esse membro contém o valor que é adicionado a cada componente de objectiva encryption standard de cor RGB para cada pixel no ícone.
Quando usado com ILS_APLHA, esse membro armazena o valor para o canal alfa. Esse valor pode ser de 0 a 255, com 0 que são completamente transparente, e 255 que são totalmente opacos.
crEffect
Um valor de COLORREF usado para efeitos de brilho e de sombra.
Valor de retorno
Verdadeiro se a imagem é desenhada com êxito; se não Falso.
Comentários
Use a primeira versão se você deseja preencher a estrutura do Win32 você mesmo. Use a segunda versão se você deseja aproveitar de um ou mais dos argumentos de opção MFC, ou evite-a gerenciar a estrutura.
Uma imagem de sobreposição é uma imagem que é desenhada sobre a imagem especificada primária, em essa função de membro pelo parâmetro de nImage . Desenhar uma máscara de sobreposição usando a função de membro de Desenho com o índice baseado em um de máscara de sobreposição especificada usando a macro de INDEXTOOVERLAYMASK .
Exemplo
int i, dx, cx, cy, nCount = m_myImageList.GetImageCount();
::ImageList_GetIconSize(m_myImageList, &cx, &cy);
// Draw the images of the image list on the DC.
for (dx = 0, i = 0; i < nCount; i++)
{
m_myImageList.DrawIndirect(&dc, i, CPoint(dx, 0),
CSize(cx, cy), CPoint(0, 0));
dx += cx;
}
Requisitos
Cabeçalho: afxcmn.h