Usando listas de imagens com controles de cabeçalho
Os itens de cabeçalho têm a capacidade de exibir uma imagem dentro de um item de cabeçalho. Essa imagem, armazenada em uma lista de imagens associada, tem 16 x 16 pixels e tem as mesmas características que as imagens de ícone usadas em um controle de exibição de lista. Para implementar esse comportamento com êxito, primeiro você precisa criar e inicializar a lista de imagens, associar a lista ao controle de cabeçalho e modificar os atributos do item de cabeçalho que exibirá a imagem.
O procedimento a seguir ilustra os detalhes usando um ponteiro para um controle de cabeçalho (m_pHdrCtrl
) e um ponteiro para uma lista de imagens (m_pHdrImages
).
Para exibir uma imagem em um item de cabeçalho
Construa uma nova lista de imagens (ou use um objeto de lista de imagens existente) usando o construtor CImageList e armazenando o ponteiro resultante.
Inicialize o novo objeto de lista de imagens chamando CImageList::Create. O código a seguir é um exemplo dessa chamada.
m_ListImageList.Create(16, 16, ILC_COLOR, 2, 2);
Adicione as imagens para cada item de cabeçalho. O código a seguir adiciona duas imagens predefinidas.
m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1)); m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
Associe a lista de imagens ao controle de cabeçalho com uma chamada para CHeaderCtrl::SetImageList.
Modifique o item de cabeçalho para exibir uma imagem da lista de imagens associada. O exemplo a seguir atribui a primeira imagem, de
m_phdrImages
, ao primeiro item de cabeçalho,m_pHdrCtrl
.HDITEM curItem = {0}; pHeaderCtrl->SetImageList(&m_ListImageList); curItem.mask = HDI_TEXT | HDI_FORMAT | HDI_WIDTH | HDI_IMAGE; curItem.pszText = _T("Column 1"); curItem.cxy = 100; curItem.iImage = 0; curItem.fmt = HDF_LEFT | HDF_STRING | HDF_IMAGE; pHeaderCtrl->InsertItem(0, &curItem);
Para obter informações detalhadas sobre os valores de parâmetro usados, consulte o CHeaderCtrl pertinente.
Observação
É possível ter vários controles usando a mesma lista de imagens. Por exemplo, em um controle de exibição de lista padrão, pode haver uma lista de imagens (de imagens de 16 x 16 pixels) usada pela exibição de ícones pequenos de um controle de exibição de lista e pelos itens de cabeçalho do controle de exibição de lista.