CImageList::DrawIndirect
Chame essa função de membro para desenhar uma imagem a partir de uma lista de imagens.
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 para um IMAGELISTDRAWPARAMS estrutura que contém informações sobre a operação de desenho.pDC
Um ponteiro para o contexto de dispositivo de destino.Você deve excluir este CDC objeto quando tiver terminado com ele.nImage
O índice baseado em zero da imagem a ser desenhada.pt
A PONTO estrutura que contém as coordenadas x– e y– onde a imagem será desenhada.sz
A dimensionar estrutura que indica o dimensionar da imagem a ser desenhada.ptOrigin
A PONTO estrutura que contém o x– e y–coordinates especificando o canto superior esquerdo da operação de desenho com relação a própria imagem.Os pixels da imagem à esquerda do x–coordenada e superiores a y–coordenada não são desenhados.fStyle
sinalizar especificando o estilo de desenho e, opcionalmente, a imagem de sobreposição.Consulte a seção comentários para obter informações sobre a imagem de sobreposição.A implementação padrão MFC, ILD_NORMAL, desenha a imagem usando a cor do plano de fundo para a lista de imagem. Se a cor do plano de fundo for a CLR_NONE valor, a imagem é desenhada com uma máscara transparente.Outros estilos possíveis são descritos no fStyle membro do IMAGELISTDRAWPARAMS estrutura.
dwRop
Valor que especifica um código de operação de varredura.Esses códigos definem como os dados de cor para o retângulo de fonte serão combinados com os dados de cor para o retângulo de destino obter a cor final.Implementação do padrão do MFC, SRCCOPY, copia o retângulo de fonte diretamente para o retângulo de destino.Este parâmetro é ignorado se o fStyle parâmetro não inclui o ILD_ROP sinalizar.Outros valores possíveis são descritos no dwRop membro do IMAGELISTDRAWPARAMS estrutura.
rgbBack
A cor do plano de fundo de imagem, por padrão CLR_DEFAULT. Esse parâmetro pode ser um valor RGB definido pelo aplicativo ou um dos seguintes valores:Valor
Significado
CLR_DEFAULT
cor do plano de fundo padrão.A imagem for desenhada usando a cor do plano de fundo da lista de imagem.
CLR_NONE
Nenhuma cor do plano de fundo.A imagem for desenhada de forma transparente.
rgbFore
Imagem de cor de primeiro plano, por padrão, CLR_DEFAULT. Esse parâmetro pode ser um valor RGB definido pelo aplicativo ou um dos seguintes valores:Valor
Significado
CLR_DEFAULT
Cor de primeiro plano do padrão.A imagem for desenhada usando a cor de realce do sistema sistema autônomo a cor de primeiro plano.
CLR_NONE
Nenhuma cor de mesclagem.A imagem é combinada com a cor do contexto de dispositivo de destino.
Este parâmetro é usado somente se fStyle inclui o ILD_BLEND25 ou ILD_BLEND50 sinalizar.
fState
sinalizar que especifica o estado de desenho.Este membro pode conter um ou mais sinalizadores de estado de lista de imagem.Frame
Afeta o comportamento dos efeitos saturate e mistura alfa.Quando usado com ILS_SATURATE, este membro mantém o valor que é adicionado a cada componente de cor da Trio de RGB para cada pixel no ícone.
Quando usado com ILS_APLHA, este membro mantém o valor para o canal alfa.Esse valor pode ser de 0 a 255, com 0 sendo completamente transparente e 255 sendo completamente opaco.
crEffect
A COLORREF valor usado para efeitos de sombra e brilho.
Valor de retorno
TRUE se a imagem é desenhada com êxito; caso contrário, FALSE.
Comentários
Use a versão primeira se você desejar preencher a estrutura do Win32 por conta própria.Use a segunda versão se você desejar usufruir uma ou mais argumentos do padrão do MFC ou evitar a estrutura de gerenciamento.
Uma imagem de sobreposição é uma imagem que é desenhada na parte superior da imagem principal, especificada nessa função de membro, a nImage parâmetro. Desenhar uma máscara de sobreposição usando o Desenhar função de membro com o índice com base em um da sobreposição de máscara especificado usando o INDEXTOOVERLAYMASK macro.
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