Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Fornece a funcionalidade do controle de lista de imagens comuns do Windows.
Sintaxe
class CImageList : public CObject
Membros
Construtores Públicos
| Nome | Descrição |
|---|---|
CImageList::CImageList |
Constrói um objeto CImageList. |
Métodos Públicos
| Nome | Descrição |
|---|---|
CImageList::Add |
Adiciona uma imagem ou imagens a uma lista de imagens. |
CImageList::Attach |
Anexa uma lista de imagens a um CImageList objeto. |
CImageList::BeginDrag |
Começa a arrastar uma imagem. |
CImageList::Copy |
Copia uma imagem dentro de um CImageList objeto. |
CImageList::Create |
Inicializa uma lista de imagens e a anexa a um CImageList objeto. |
CImageList::DeleteImageList |
Exclui uma lista de imagens. |
CImageList::DeleteTempMap |
Chamado pelo manipulador de tempo ocioso CWinApp para excluir qualquer objeto temporário CImageList criado pelo FromHandle. |
CImageList::Detach |
Desanexa um objeto de lista de imagens de um CImageList objeto e retorna um identificador para uma lista de imagens. |
CImageList::DragEnter |
Bloqueia atualizações durante uma operação de arrastar e exibe a imagem de arraste em uma posição especificada. |
CImageList::DragLeave |
Desbloqueia a janela e oculta a imagem de arraste para que a janela possa ser atualizada. |
CImageList::DragMove |
Move a imagem que está sendo arrastada durante uma operação de arrastar e soltar. |
CImageList::DragShowNolock |
Mostra ou oculta a imagem de arrastar durante uma operação de arrastar, sem bloquear a janela. |
CImageList::Draw |
Desenha a imagem que está sendo arrastada durante uma operação de arrastar e soltar. |
CImageList::DrawEx |
Desenha um item de lista de imagens no contexto de dispositivo especificado. A função usa o estilo de desenho especificado e combina a imagem com a cor especificada. |
CImageList::DrawIndirect |
Desenha uma imagem de uma lista de imagens. |
CImageList::EndDrag |
Encerra uma operação de arrastar. |
CImageList::ExtractIcon |
Cria um ícone com base em uma imagem e máscara em uma lista de imagens. |
CImageList::FromHandle |
Retorna um ponteiro para um CImageList objeto quando recebe um identificador para uma lista de imagens. Se um CImageList objeto não estiver anexado à alça, um objeto temporário CImageList será criado e anexado. |
CImageList::FromHandlePermanent |
Retorna um ponteiro para um CImageList objeto quando recebe um identificador para uma lista de imagens. Se um CImageList objeto não estiver anexado ao identificador, NULL será retornado. |
CImageList::GetBkColor |
Recupera a cor de plano de fundo atual de uma lista de imagens. |
CImageList::GetDragImage |
Obtém a lista de imagens temporárias que é usada para arrastar. |
CImageList::GetImageCount |
Recupera o número de imagens em uma lista de imagens. |
CImageList::GetImageInfo |
Recupera informações sobre uma imagem. |
CImageList::GetSafeHandle |
Recupera m_hImageList. |
CImageList::Read |
Lê uma lista de imagens de um arquivo. |
CImageList::Remove |
Remove uma imagem de uma lista de imagens. |
CImageList::Replace |
Substitui uma imagem numa lista de imagens por uma nova imagem. |
CImageList::SetBkColor |
Define a cor do plano de fundo para uma lista de imagens. |
CImageList::SetDragCursorImage |
Cria uma nova imagem de arrastar. |
CImageList::SetImageCount |
Redefine a contagem de imagens em uma lista de imagens. |
CImageList::SetOverlayImage |
Adiciona o índice baseado em zero de uma imagem à lista de imagens a serem usadas como máscaras de sobreposição. |
CImageList::Write |
Grava uma lista de imagens em um arquivo. |
Operadores Públicos
| Nome | Descrição |
|---|---|
CImageList::operator HIMAGELIST |
Devolve o HIMAGELIST anexo ao CImageListficheiro . |
Membros de Dados Públicos
| Nome | Descrição |
|---|---|
CImageList::m_hImageList |
Um identificador que contém a lista de imagens anexada a este objeto. |
Observações
Uma "lista de imagens" é uma coleção de imagens do mesmo tamanho, cada uma das quais pode ser referida pelo seu índice baseado em zero. As listas de imagens são usadas para gerenciar com eficiência grandes conjuntos de ícones ou bitmaps. Todas as imagens numa lista de imagens estão contidas num único bitmap grande no formato de dispositivo de ecrã. Uma lista de imagens também pode incluir um bitmap monocromático que contém máscaras usadas para desenhar imagens de forma transparente (estilo de ícone). A interface de programação de aplicativos (API) do Microsoft Win32 fornece funções de lista de imagens que permitem desenhar imagens, criar e destruir listas de imagens, adicionar e remover imagens, substituir imagens, mesclar imagens e arrastar imagens.
Esse controle (e, portanto, a classe CImageList) está disponível apenas para programas executados no Windows 95/98 e Windows NT versão 3.51 e posterior.
Para obter mais informações sobre como usar CImageListo , consulte Controles e uso CImageListdo .
Hierarquia de herança
CImageList
Requerimentos
Cabeçalho:afxcmn.h
CImageList::Add
Chame esta função para adicionar uma ou mais imagens ou um ícone a uma lista de imagens.
int Add(
CBitmap* pbmImage,
CBitmap* pbmMask);
int Add(
CBitmap* pbmImage,
COLORREF crMask);
int Add(HICON hIcon);
Parâmetros
pbmImage
Ponteiro para o bitmap que contém a imagem ou imagens. O número de imagens é inferido a partir da largura do bitmap.
pbmMask
Ponteiro para o bitmap que contém a máscara. Se nenhuma máscara for usada com a lista de imagens, esse parâmetro será ignorado.
crMask
Cor usada para gerar a máscara. Cada pixel dessa cor no bitmap fornecido é alterado para preto e o bit correspondente na máscara é definido como um.
hIcon
Identificador do ícone que contém o bitmap e a máscara para a nova imagem.
Valor de retorno
Índice baseado em zero da primeira nova imagem, se bem-sucedida; caso contrário - 1.
Observações
Você é responsável por liberar a alça de ícone quando terminar de usá-la.
Exemplo
// Add my icons.
m_myImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_myImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
// Add my bitmap, make all black pixels transparent.
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
m_myImageList.Add(&bm, RGB(0, 0, 0));
CImageList::Attach
Chame essa função para anexar uma lista de imagens a um CImageList objeto.
BOOL Attach(HIMAGELIST hImageList);
Parâmetros
hImageList
Um identificador para um objeto de lista de imagens.
Valor de retorno
Diferente de zero se o anexo foi bem-sucedido; caso contrário, 0.
Exemplo
void AddQuestion(HIMAGELIST hmyImageList)
{
CImageList imgList;
// Attach the image list handle to the CImageList object.
imgList.Attach(hmyImageList);
// Add a new icon to the image list.
imgList.Add(AfxGetApp()->LoadStandardIcon(IDI_QUESTION));
// Detach the handle from the CImageList object.
imgList.Detach();
}
CImageList::BeginDrag
Chame essa função para começar a arrastar uma imagem.
BOOL BeginDrag(
int nImage,
CPoint ptHotSpot);
Parâmetros
nImage
Índice baseado em zero da imagem a ser arrastada.
ptHotSpot
Coordenadas da posição inicial de arrasto (normalmente, a posição do cursor). As coordenadas são relativas ao canto superior esquerdo da imagem.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Observações
Esta função cria uma lista de imagens temporárias que é usada para arrastar. A imagem combina a imagem especificada e sua máscara com o cursor atual. Em resposta às mensagens subsequentes WM_MOUSEMOVE , você pode mover a imagem de arrastar usando a DragMove função de membro. Para encerrar a operação de arrastar, você pode usar a EndDrag função de membro.
Exemplo
void CImageListDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// Initialize the drag image (usually called from WM_LBUTTONDOWN).
m_myImageList.BeginDrag(0, CPoint(0, 0));
m_myImageList.DragEnter(this, point);
CDialog::OnLButtonDown(nFlags, point);
}
CImageList::CImageList
Constrói um objeto CImageList.
CImageList();
CImageList::Copy
Esta função de membro implementa o comportamento da função ImageList_CopyWin32 , conforme descrito no SDK do Windows.
BOOL Copy(
int iDst,
int iSrc,
UINT uFlags = ILCF_MOVE);
BOOL Copy(
int iDst,
CImageList* pSrc,
int iSrc,
UINT uFlags = ILCF_MOVE);
Parâmetros
iDst
O índice baseado em zero da imagem a ser usada como destino da operação de cópia.
iSrc
O índice baseado em zero da imagem a ser usada como fonte da operação de cópia.
uFlags
O valor do sinalizador de bit que especifica o tipo de operação de cópia a ser feita. Este parâmetro pode ser um dos seguintes valores:
| Valor | Significado |
|---|---|
ILCF_MOVE |
A imagem de origem é copiada para o índice da imagem de destino. Esta operação resulta em várias instâncias de uma determinada imagem.
ILCF_MOVE é o padrão. |
ILCF_SWAP |
As imagens de origem e de destino trocam posições dentro da lista de imagens. |
pSrc
Um ponteiro para um CImageList objeto que é o destino da operação de cópia.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, zero.
Exemplo
CImageList myImageList2;
myImageList2.Create(32, 32, ILC_COLOR8, 0, 4);
// Copy the first image from myImageList2 and make it
// the first image of m_myImageList.
m_myImageList.Copy(0, &myImageList2, 0, ILCF_MOVE);
// Recopy the image to make it also the last image in m_myImageList.
m_myImageList.Copy(m_myImageList.GetImageCount() - 1, (int)0,
(UINT)ILCF_MOVE);
CImageList::Create
Inicializa uma lista de imagens e a anexa a um CImageList objeto.
BOOL Create(
int cx,
int cy,
UINT nFlags,
int nInitial,
int nGrow);
BOOL Create(
UINT nBitmapID,
int cx,
int nGrow,
COLORREF crMask);
BOOL Create(
LPCTSTR lpszBitmapID,
int cx,
int nGrow,
COLORREF crMask);
BOOL Create(
CImageList& imagelist1,
int nImage1,
CImageList& imagelist2,
int nImage2,
int dx,
int dy);
BOOL Create(CImageList* pImageList);
Parâmetros
cx
Dimensões de cada imagem, em pixels.
cy
Dimensões de cada imagem, em pixels.
nFlags
Especifica o tipo de lista de imagens a ser criada. Este parâmetro pode ser uma combinação dos seguintes valores, mas pode incluir apenas um dos ILC_COLOR valores.
| Valor | Significado |
|---|---|
ILC_COLOR |
Use o comportamento padrão se nenhum dos outros ILC_COLOR* sinalizadores for especificado. Normalmente, o padrão é ILC_COLOR4, mas para drivers de vídeo mais antigos, o padrão é ILC_COLORDDB. |
ILC_COLOR4 |
Use uma seção de bitmap independente de dispositivo (DIB) de 4 bits (16 cores) como o bitmap para a lista de imagens. |
ILC_COLOR8 |
Use uma seção DIB de 8 bits. As cores usadas para a tabela de cores são as mesmas cores da paleta de meios-tons. |
ILC_COLOR16 |
Use uma seção DIB de 16 bits (32/64k color). |
ILC_COLOR24 |
Use uma seção DIB de 24 bits. |
ILC_COLOR32 |
Use uma seção DIB de 32 bits. |
ILC_COLORDDB |
Use um bitmap dependente do dispositivo. |
ILC_MASK |
Usa máscara. A lista de imagens contém dois bitmaps, um dos quais é um bitmap monocromático usado como máscara. Se esse valor não estiver incluído, a lista de imagens conterá apenas um bitmap. Consulte Desenhar imagens de uma lista de imagens para obter informações adicionais sobre imagens mascaradas. |
nInitial
Número de imagens que a lista de imagens contém inicialmente.
nGrow
Número de imagens pelas quais a lista de imagens pode crescer quando o sistema precisa redimensioná-la para abrir espaço para novas imagens. Este parâmetro representa o número de novas imagens que a lista de imagens redimensionadas pode conter.
nBitmapID
IDs de recursos do bitmap a ser associado à lista de imagens.
crMask
Cor usada para gerar uma máscara. Cada pixel dessa cor no bitmap especificado é alterado para preto e o bit correspondente na máscara é definido como um.
lpszBitmapID
Uma cadeia de caracteres que contém as IDs de recurso das imagens.
imagelist1
Uma referência a um objeto CImageList.
nImage1
Índice da primeira imagem existente.
imagelist2
Uma referência a um objeto CImageList.
nImage2
Índice da segunda imagem existente.
dx
Deslocamento do eixo x da segunda imagem em relação à primeira imagem, em pixels.
dy
Deslocamento do eixo y da segunda imagem em relação à primeira imagem, em pixels.
pImageList
Um ponteiro para um CImageList objeto.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Observações
Você constrói um CImageList em duas etapas. Primeiro, chame o construtor e, em seguida, chame Create, que cria a lista de imagens e a anexa ao CImageList objeto.
Exemplo
m_myImageList.Create(32, 32, ILC_COLOR8, 0, 4);
CImageList::DeleteImageList
Chame essa função para excluir uma lista de imagens.
BOOL DeleteImageList();
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Exemplo
// Delete the image list and verify.
myImageList2.DeleteImageList();
ASSERT(myImageList2.GetSafeHandle() == NULL);
CImageList::DeleteTempMap
Chamado automaticamente pelo manipulador de CWinApp tempo ocioso, DeleteTempMap exclui todos os objetos temporários CImageList criados por FromHandle, mas não destrói nenhum identificador (hImageList) temporariamente associado aos ImageList objetos.
static void PASCAL DeleteTempMap();
Exemplo
// Note that this is a static member so an instantiated CImageList
// object is unnecessary.
CImageList::DeleteTempMap();
CImageList::Detach
Chame essa função para desanexar um objeto de lista de imagens de um CImageList objeto.
HIMAGELIST Detach();
Valor de retorno
Um identificador para um objeto de lista de imagens.
Observações
Esta função retorna um identificador para o objeto de lista de imagens.
Exemplo
Veja o exemplo para CImageList::Attach.
CImageList::DragEnter
Durante uma operação de arrastar, bloqueia as atualizações para a janela especificada por pWndLock e exibe a imagem de arraste na posição especificada por point.
static BOOL PASCAL DragEnter(
CWnd* pWndLock,
CPoint point);
Parâmetros
pWndLock
Ponteiro para a janela que possui a imagem arrastada.
point
Posição na qual exibir a imagem arrastada. As coordenadas são relativas ao canto superior esquerdo da janela (não à área do cliente).
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Observações
As coordenadas são relativas ao canto superior esquerdo da janela, portanto, você deve compensar as larguras dos elementos da janela, como a borda, a barra de título e a barra de menus, ao especificar as coordenadas.
Se pWndLock for NULL, esta função desenha a imagem no contexto de exibição associado à janela da área de trabalho, e as coordenadas são relativas ao canto superior esquerdo da tela.
Esta função bloqueia todas as outras atualizações para a janela dada durante a operação de arrastar. Se você precisar fazer qualquer desenho durante uma operação de arrastar, como realçar o destino de uma operação de arrastar e soltar, você pode ocultar temporariamente a imagem arrastada usando a CImageList::DragLeave função.
Exemplo
Veja o exemplo para CImageList::BeginDrag.
CImageList::DragLeave
Desbloqueia a janela especificada e pWndLock oculta a imagem de arrasto, permitindo que a janela seja atualizada.
static BOOL PASCAL DragLeave(CWnd* pWndLock);
Parâmetros
pWndLock
Ponteiro para a janela que possui a imagem arrastada.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Exemplo
Veja o exemplo para CImageList::EndDrag.
CImageList::DragMove
Chame essa função para mover a imagem que está sendo arrastada durante uma operação de arrastar e soltar.
static BOOL PASCAL DragMove(CPoint pt);
Parâmetros
pt
Nova posição de arrasto.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Observações
Esta função é normalmente chamada em resposta a uma WM_MOUSEMOVE mensagem. Para iniciar uma operação de arrastar, use a BeginDrag função de membro.
Exemplo
void CImageListDlg::OnMouseMove(UINT nFlags, CPoint point)
{
m_myImageList.DragMove(point);
CDialog::OnMouseMove(nFlags, point);
}
CImageList::DragShowNolock
Mostra ou oculta a imagem de arrastar durante uma operação de arrastar, sem bloquear a janela.
static BOOL PASCAL DragShowNolock(BOOL bShow);
Parâmetros
bShow
Especifica se a imagem de arraste deve ser mostrada.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Observações
A CImageList::DragEnter função bloqueia todas as atualizações para a janela durante uma operação de arrastar. Esta função, no entanto, não bloqueia a janela.
CImageList::Draw
Chame essa função para desenhar a imagem que está sendo arrastada durante uma operação de arrastar e soltar.
BOOL Draw(
CDC* pDC,
int nImage,
POINT pt,
UINT nStyle);
Parâmetros
pDC
Ponteiro para o contexto do dispositivo de destino.
nImage
Índice baseado em zero da imagem a desenhar.
pt
Local no qual desenhar dentro do contexto do dispositivo especificado.
nStyle
Sinalizador especificando o estilo de desenho. Pode ser um ou mais destes valores:
| Valor | Significado |
|---|---|
ILD_BLEND25, ILD_FOCUS |
Desenha a imagem, misturando 25% com a cor de realce do sistema. Esse valor não terá efeito se a lista de imagens não contiver uma máscara. |
ILD_BLEND50, ILD_SELECTED, ILD_BLEND |
Desenha a imagem, misturando 50% com a cor de realce do sistema. Esse valor não terá efeito se a lista de imagens não contiver uma máscara. |
ILD_MASK |
Desenha a máscara. |
ILD_NORMAL |
Desenha a imagem usando a cor de plano de fundo para a lista de imagens. Se a cor do plano de fundo for o CLR_NONE valor, a imagem será desenhada de forma transparente usando a máscara. |
ILD_TRANSPARENT |
Desenha a imagem de forma transparente usando a máscara, independentemente da cor do plano de fundo. |
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Exemplo
Veja o exemplo para CImageList::SetOverlayImage.
CImageList::DrawEx
Desenha um item de lista de imagens no contexto de dispositivo especificado.
BOOL DrawEx(
CDC* pDC,
int nImage,
POINT pt,
SIZE sz,
COLORREF clrBk,
COLORREF clrFg,
UINT nStyle);
Parâmetros
pDC
Ponteiro para o contexto do dispositivo de destino.
nImage
Índice baseado em zero da imagem a desenhar.
pt
Local no qual desenhar dentro do contexto do dispositivo especificado.
sz
Tamanho da parte da imagem a desenhar em relação ao canto superior esquerdo da imagem. Consulte dx e dy entre ImageList_DrawEx no SDK do Windows.
clrBk
Cor de fundo da imagem. Consulte rgbBk no ImageList_DrawEx SDK do Windows.
clrFg
Cor de primeiro plano da imagem. Consulte rgbFg no ImageList_DrawEx SDK do Windows.
nStyle
Sinalizador especificando o estilo de desenho. Consulte fStyle no ImageList_DrawEx SDK do Windows.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Observações
A função usa o estilo de desenho especificado e combina a imagem com a cor especificada.
Exemplo
m_myImageList.DrawEx(&dc, 0, CPoint(0, 0), CSize(16, 16), CLR_DEFAULT,
CLR_DEFAULT, ILD_IMAGE);
CImageList::DrawIndirect
Chame essa função de membro para desenhar uma imagem 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 uma IMAGELISTDRAWPARAMS estrutura 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 CDC objeto quando terminar de usá-lo.
nImage
O índice baseado em zero da imagem a ser desenhada.
pt
Uma POINT estrutura contendo as coordenadas x e y onde a imagem será desenhada.
sz
Uma SIZE estrutura que indica o tamanho da imagem a ser desenhada.
ptOrigin
Uma POINT estrutura que contém as coordenadas x e y especificando o canto superior esquerdo da operação de desenho em relação à própria imagem. Os pixels da imagem que estão à esquerda da coordenada x e acima da coordenada y não são desenhados.
fStyle
Sinalizador 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 do MFC, ILD_NORMAL, desenha a imagem usando a cor de plano de fundo para a lista de imagens. Se a cor do plano de fundo for o CLR_NONE valor, a imagem será desenhada de forma transparente usando uma máscara.
Outros estilos possíveis são descritos sob o fStyleIMAGELISTDRAWPARAMS membro da estrutura.
dwRop
Valor que especifica um código de operação de raster. Esses códigos definem como os dados de cor para o retângulo de origem serão combinados com os dados de cor para o retângulo de destino para alcançar a cor final. A implementação padrão do MFC, SRCCOPY, copia o retângulo de origem diretamente para o retângulo de destino. Este parâmetro será ignorado se o fStyle parâmetro não incluir o ILD_ROP sinalizador.
Outros valores possíveis são descritos sob o dwRopIMAGELISTDRAWPARAMS membro da estrutura.
rgbBack
A cor de fundo da 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 de fundo padrão. A imagem é desenhada usando a cor de fundo da lista de imagens. |
CLR_NONE |
Sem cor de fundo. A imagem é desenhada de forma transparente. |
rgbFore
Cor do primeiro plano da 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 de primeiro plano padrão. A imagem é desenhada usando a cor de realce do sistema como a cor de primeiro plano. |
CLR_NONE |
Sem cor de mistura. A imagem é misturada com a cor do contexto do dispositivo de destino. |
Este parâmetro é usado somente se fStyle incluir o ILD_BLEND25 sinalizador ou ILD_BLEND50 .
fState
Sinalizador especificando o estado de desenho. Este membro pode conter uma ou mais bandeiras de estado da lista de imagens.
Frame
Afeta o comportamento dos efeitos de saturação e mistura alfa.
Quando usado com ILS_SATURATEo , esse membro mantém o valor que é adicionado a cada componente de cor do trio RGB para cada pixel no ícone.
Quando usado com ILS_APLHAo , esse membro mantém o valor do canal alfa. Este valor pode ser de 0 a 255, sendo 0 completamente transparente e 255 completamente opaco.
crEffect
Um COLORREF valor usado para efeitos de brilho e sombra.
Valor de retorno
TRUE se a imagem for desenhada com sucesso; caso contrário FALSE.
Observações
Use a primeira versão se você quiser preencher a estrutura do Win32 você mesmo. Use a segunda versão se quiser aproveitar um ou mais dos argumentos padrão do MFC ou evite gerenciar a estrutura.
Uma imagem de sobreposição é uma imagem que é desenhada sobre a imagem primária, especificada nesta função de membro pelo nImage parâmetro. Desenhe uma máscara de sobreposição usando a Draw função de membro com o índice baseado em um da máscara de sobreposição especificada usando a 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;
}
CImageList::EndDrag
Chame essa função para encerrar uma operação de arrastar.
static void PASCAL EndDrag();
Observações
Para iniciar uma operação de arrastar, use a BeginDrag função de membro.
Exemplo
void CImageListDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
// Terminate the drag image (usually called from WM_LBUTTONUP).
m_myImageList.DragLeave(this);
m_myImageList.EndDrag();
CDialog::OnLButtonUp(nFlags, point);
}
CImageList::ExtractIcon
Chame essa função para criar um ícone com base em uma imagem e sua máscara relacionada em uma lista de imagens.
HICON ExtractIcon(int nImage);
Parâmetros
nImage
Índice baseado em zero da imagem.
Valor de retorno
Identificador do ícone se for bem-sucedido; caso contrário NULL.
Observações
Esse método depende do comportamento da ImageList_ExtractIcon macro para criar o ícone. Consulte a macro para obter mais informações sobre a ImageList_ExtractIcon criação e limpeza de ícones.
Exemplo
int i, dx, cx, cy, nCount = m_myImageList.GetImageCount();
HICON hIcon;
::ImageList_GetIconSize(m_myImageList, &cx, &cy);
// Draw the images of the image list on the DC.
for (dx = 0, i = 0; i < nCount; i++)
{
hIcon = m_myImageList.ExtractIcon(i);
dc.DrawIcon(dx, 0, hIcon);
dx += cx;
}
CImageList::FromHandle
Retorna um ponteiro para um CImageList objeto quando recebe um identificador para uma lista de imagens.
static CImageList* PASCAL FromHandle(HIMAGELIST hImageList);
Parâmetros
hImageList
Especifica a lista de imagens.
Valor de retorno
Um ponteiro para um CImageList objeto, se bem-sucedido, caso contrário NULL.
Observações
Se um CImageList ainda não estiver anexado ao identificador, um objeto temporário CImageList será criado e anexado. Esse objeto temporário CImageList é válido somente até a próxima vez que o aplicativo tiver tempo ocioso em seu loop de eventos, momento em que todos os objetos temporários serão excluídos.
Exemplo
CImageList *ConvertHandle(HIMAGELIST hmyImageList)
{
// Convert the HIMAGELIST to a CImageList*.
ASSERT(hmyImageList != NULL);
CImageList *pmyImageList = CImageList::FromHandle(hmyImageList);
ASSERT(pmyImageList != NULL);
return pmyImageList;
}
CImageList::FromHandlePermanent
Retorna um ponteiro para um CImageList objeto quando recebe um identificador para uma lista de imagens.
static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList);
Parâmetros
hImageList
Especifica a lista de imagens.
Valor de retorno
Um ponteiro para um CImageList objeto, se bem-sucedido, caso contrário NULL.
Observações
Se um CImageList objeto não estiver anexado à alça, NULL será retornado.
Exemplo
CImageList *ConvertHandlePermanent(HIMAGELIST hmyImageList)
{
// Convert the HIMAGELIST to a CImageList*.
ASSERT(hmyImageList != NULL);
CImageList *pmyImageList = CImageList::FromHandlePermanent(hmyImageList);
ASSERT(pmyImageList != NULL);
return pmyImageList;
}
CImageList::GetBkColor
Chame essa função para recuperar a cor de plano de fundo atual de uma lista de imagens.
COLORREF GetBkColor() const;
Valor de retorno
O valor de cor RGB da cor de fundo do CImageList objeto.
Exemplo
Veja o exemplo para CImageList::SetBkColor.
CImageList::GetDragImage
Obtém a lista de imagens temporárias que é usada para arrastar.
static CImageList* PASCAL GetDragImage(
LPPOINT lpPoint,
LPPOINT lpPointHotSpot);
Parâmetros
lpPoint
Endereço de uma POINT estrutura que recebe a posição de arrasto atual.
lpPointHotSpot
Endereço de uma POINT estrutura que recebe o deslocamento da imagem de arrasto em relação à posição de arrastar.
Valor de retorno
Se for bem-sucedido, um ponteiro para a lista de imagens temporárias que é usada para arrastar; caso contrário, NULL.
CImageList::GetImageCount
Chame essa função para recuperar o número de imagens em uma lista de imagens.
int GetImageCount() const;
Valor de retorno
O número de imagens.
Exemplo
Veja o exemplo para CImageList::ExtractIcon.
CImageList::GetImageInfo
Chame essa função para recuperar informações sobre uma imagem.
BOOL GetImageInfo(
int nImage,
IMAGEINFO* pImageInfo) const;
Parâmetros
nImage
Índice baseado em zero da imagem.
pImageInfo
Ponteiro para uma IMAGEINFO estrutura que recebe informações sobre a imagem. As informações nessa estrutura podem ser usadas para manipular diretamente os bitmaps da imagem.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Observações
A IMAGEINFO estrutura contém informações sobre uma imagem em uma lista de imagens.
CImageList::GetSafeHandle
Chame essa função para recuperar o m_hImageList membro de dados.
HIMAGELIST GetSafeHandle() const;
Valor de retorno
Um identificador para a lista de imagens anexada; caso contrário NULL , se nenhum objeto for anexado.
Exemplo
// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.GetSafeHandle();
CImageList::m_hImageList
Um identificador da lista de imagens anexada a este objeto.
HIMAGELIST m_hImageList;
Observações
O m_hImageList membro de dados é uma variável pública do tipo HIMAGELIST.
Exemplo
// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.m_hImageList;
CImageList::operator HIMAGELIST
Use este operador para obter o identificador anexado do CImageList objeto.
operator HIMAGELIST() const;
Valor de retorno
Se for bem-sucedido, um identificador para a lista de imagens representada pelo CImageList objeto, caso contrário NULL.
Observações
Este operador é um operador de fundição, que suporta o uso direto de um HIMAGELIST objeto.
Exemplo
// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList;
CImageList::Read
Chame essa função para ler uma lista de imagens de um arquivo.
BOOL Read(CArchive* pArchive);
Parâmetros
pArchive
Um ponteiro para um CArchive objeto a partir do qual a lista de imagens deve ser lida.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Exemplo
// Open the archive to load the image list from.
CFile myFile(_T("myfile.data"), CFile::modeRead);
CArchive ar(&myFile, CArchive::load);
CImageList myImgList;
// Load the image list from the archive.
myImgList.Read(&ar);
CImageList::Remove
Chame essa função para remover uma imagem de um objeto de lista de imagens.
BOOL Remove(int nImage);
Parâmetros
nImage
Índice baseado em zero da imagem a ser removida.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Observações
Todos os itens seguintes nImage agora descem uma posição. Por exemplo, se uma lista de imagens contiver dois itens, excluir o primeiro item fará com que o item restante esteja agora na primeira posição.
nImage=0 para o item na primeira posição.
Exemplo
// Remove every other image from the image list.
for (int i = 0; i < m_myImageList.GetImageCount(); i++)
{
m_myImageList.Remove(i);
}
CImageList::Replace
Chame essa função para substituir uma imagem em uma lista de imagens por uma nova imagem.
BOOL Replace(
int nImage,
CBitmap* pbmImage,
CBitmap* pbmMask);
int Replace(
int nImage,
HICON hIcon);
Parâmetros
nImage
Índice baseado em zero da imagem a ser substituída.
pbmImage
Um ponteiro para o bitmap que contém a imagem.
pbmMask
Um ponteiro para o bitmap que contém a máscara. Se nenhuma máscara for usada com a lista de imagens, esse parâmetro será ignorado.
hIcon
Um identificador para o ícone que contém o bitmap e a máscara para a nova imagem.
Valor de retorno
A versão que retorna BOOL retorna diferente de zero se for bem-sucedida, caso contrário, 0.
A versão que retorna int retorna o índice baseado em zero da imagem se for bem-sucedida; caso contrário - 1.
Observações
Chame essa função de membro depois de chamar SetImageCount para atribuir as imagens novas e válidas aos números de índice de imagem de espaço reservado.
Exemplo
Veja o exemplo para CImageList::SetImageCount.
CImageList::SetBkColor
Chame essa função para definir a cor do plano de fundo de uma lista de imagens.
COLORREF SetBkColor(COLORREF cr);
Parâmetros
cr
Cor de fundo a definir. Pode ser CLR_NONE. Nesse caso, as imagens são desenhadas de forma transparente usando a máscara.
Valor de retorno
A cor de fundo anterior, se bem-sucedida; caso contrário CLR_NONE.
Exemplo
// Set the background color to white.
m_myImageList.SetBkColor(RGB(255, 255, 255));
ASSERT(m_myImageList.GetBkColor() == RGB(255, 255, 255));
CImageList::SetDragCursorImage
Cria uma nova imagem de arrasto combinando a imagem fornecida (normalmente uma imagem do cursor do mouse) com a imagem de arraste atual.
BOOL SetDragCursorImage(
int nDrag,
CPoint ptHotSpot);
Parâmetros
nDrag
Índice da nova imagem a ser combinada com a imagem arrastada.
ptHotSpot
Posição do ponto de acesso dentro da nova imagem.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Observações
Como as funções de arrastar usam a nova imagem durante uma operação de arrastar, você deve usar a função do Windows ShowCursor para ocultar o cursor real do mouse depois de chamar CImageList::SetDragCursorImage. Caso contrário, o sistema pode parecer ter dois cursores do mouse durante a operação de arrastar.
CImageList::SetImageCount
Chame essa função de membro para redefinir o número de imagens em um CImageList objeto.
BOOL SetImageCount(UINT uNewCount);
Parâmetros
uNewCount
O valor que especifica o novo número total de imagens na lista de imagens.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, zero.
Observações
Se você chamar essa função de membro para aumentar o número de imagens na lista de imagens, chame Replace cada imagem adicional para atribuir os novos índices a imagens válidas. Se você não conseguir atribuir os índices a imagens válidas, as operações de desenho que criam as novas imagens serão imprevisíveis.
Se você diminuir o tamanho de uma lista de imagens usando essa função, as imagens truncadas serão liberadas.
Exemplo
// Set the image count of the image list to be 10 with
// all images being the system question mark icon.
m_myImageList.SetImageCount(10);
HICON hIcon = AfxGetApp()->LoadStandardIcon(IDI_QUESTION);
for (int i = 0; i < 10; i++)
{
m_myImageList.Replace(i, hIcon);
}
CImageList::SetOverlayImage
Chame essa função para adicionar o índice baseado em zero de uma imagem à lista de imagens a serem usadas como máscaras de sobreposição.
BOOL SetOverlayImage(
int nImage,
int nOverlay);
Parâmetros
nImage
Índice baseado em zero da imagem para usar como máscara de sobreposição.
nOverlay
Índice baseado em um da máscara de sobreposição.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Observações
Até quatro índices podem ser adicionados à lista.
Uma máscara de sobreposição é uma imagem desenhada de forma transparente sobre outra imagem. Desenhe uma máscara de sobreposição sobre uma imagem usando a CImageList::Draw função de membro com o índice baseado em um da máscara de sobreposição especificada usando a INDEXTOOVERLAYMASK macro.
Exemplo
// Add a new image to the image list.
int nIndex = m_myImageList.Add(AfxGetApp()->LoadStandardIcon(IDI_QUESTION));
if (nIndex != -1)
{
// Make the new image an overlay image.
m_myImageList.SetOverlayImage(nIndex, 1);
// Draw the first image in the image list with an overlay image.
m_myImageList.Draw(&dc, 0, CPoint(0, 0), INDEXTOOVERLAYMASK(1));
}
CImageList::Write
Chame essa função para gravar um objeto de lista de imagens em um arquivo.
BOOL Write(CArchive* pArchive);
Parâmetros
pArchive
Um ponteiro para um CArchive objeto no qual a lista de imagens deve ser armazenada.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Exemplo
// Open the archive to store the image list in.
CFile myFile(_T("myfile.data"), CFile::modeCreate | CFile::modeWrite);
CArchive ar(&myFile, CArchive::store);
// Store the image list in the archive.
m_myImageList.Write(&ar);
Ver também
CObject Classe
Gráfico de Hierarquia
CListCtrl Classe
CTabCtrl Classe