Listas de imagens de controle de árvore
Cada item em um controle de árvore (CTreeCtrl) pode ter um par de imagens de bitmap associadas a ele. As imagens aparecem no lado esquerdo do rótulo de um item. Uma imagem é exibida quando o item é selecionado e a outra é exibida quando o item não está selecionado. Por exemplo, um item pode exibir uma pasta aberta quando estiver selecionada e uma pasta fechada quando não estiver selecionada.
Para usar imagens de item, você deve criar uma lista de imagens construindo um objeto CImageList e usando a função CImageList::Create para criar a lista de imagens associada. Em seguida, adicione os bitmaps desejados à lista e associe a lista ao controle de árvore usando a função membro SetImageList. Por padrão, todos os itens exibem a primeira imagem na lista de imagens para os estados selecionados e não selecionados. Você pode alterar o comportamento padrão de um item em particular especificando os índices das imagens selecionadas e não selecionadas ao adicionar o item ao controle de árvore usando a função membro InsertItem. Você pode alterar os índices depois de adicionar um item usando a função membro SetItemImage.
As listas de imagens de um controle de árvore também podem conter imagens de sobreposição, que foram projetadas para serem sobrepostas em imagens de item. Um valor não zero nos bits 8 a 11 do estado de um item de controle de árvore especifica o índice baseado em um de uma imagem de sobreposição (0 indica nenhuma imagem de sobreposição). Como é usado um índice baseado em um de 4 bits, as imagens de sobreposição devem estar entre as 15 primeiras imagens nas listas de imagens. Para obter mais informações sobre estados de itens de controle de árvore, consulte a Visão geral dos estados de itens de controle de árvore anteriormente neste tópico.
Se uma lista de imagens de estado for especificada, um controle de árvore reservará espaço à esquerda do ícone de cada item para uma imagem de estado. Um aplicativo pode usar imagens de estado, como caixas de seleção marcadas e desmarcadas, para indicar estados de item definidos pelo aplicativo. Um valor não zero nos bits 12 a 15 especifica o índice baseado em um de uma imagem de estado (0 indica nenhuma imagem de estado).
Ao especificar o valor I_IMAGECALLBACK em vez do índice de uma imagem, você pode atrasar a especificação da imagem selecionada ou não selecionada até que o item esteja prestes a ser redesenhado. I_IMAGECALLBACK direciona o controle de árvore para consultar o aplicativo para o índice enviando a mensagem de notificação TVN_GETDISPINFO.
A função membro GetImageList recupera o identificador da lista de imagens de um controle de árvore. Essa função será útil se você precisar adicionar mais imagens à lista. Para mais informações sobre as funções de lista de imagens, confira Usar CImageList, CImageList na Referência do MFC e Listas de Imagens no SDK do Windows.