Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os diferentes tipos de imagens utilizados pelo elemento de caixa de combinação estendida são determinados pelos valores nos membros iImage, iSelectedImage e iOverlay da estrutura COMBOBOXEXITEM. Cada valor é o índice de uma imagem na lista de imagens associadas do controle. Por padrão, esses membros são definidos como 0, fazendo com que o controle não exiba nenhuma imagem para o item. Se você quiser usar imagens para um item específico, você pode modificar a estrutura de acordo, seja ao inserir o item de caixa de combinação ou modificando um item de caixa de combinação existente.
Definindo a imagem para um novo item
Se você estiver inserindo um novo item, inicialize os membros da estrutura iImage, iSelectedImage e iOverlay com os valores apropriados e, em seguida, insira o item com uma chamada para CComboBoxEx::InsertItem.
O exemplo a seguir insere um novo item de caixa de combinação estendida (cbi
) no controle de caixa de combinação estendida (m_comboEx
), fornecendo índices para todos os três estados de imagem:
COMBOBOXEXITEM cbi = { 0 };
COMBOBOXEXITEM cbi = { 0 };
CString str;
int nItem;
cbi.mask = CBEIF_IMAGE | CBEIF_INDENT | CBEIF_OVERLAY |
CBEIF_SELECTEDIMAGE | CBEIF_TEXT;
cbi.iItem = 0;
cbi.pszText = _T("Item 0");
cbi.iImage = 0;
cbi.iSelectedImage = 1;
cbi.iOverlay = 2;
cbi.iIndent = (0 & 0x03); //Set indentation according
//to item position
nItem = m_ComboBoxEx.InsertItem(&cbi);
ASSERT(nItem == 0);
Definindo a imagem para um item existente
Se estiver a modificar um item existente, precisa trabalhar com o membro mask de uma estrutura COMBOBOXEXITEM.
Para modificar um item existente para usar imagens
Declare uma estrutura COMBOBOXEXITEM e defina o membro de dados da máscara para os valores que você está interessado em modificar.
Usando essa estrutura, faça uma chamada para CComboBoxEx::GetItem.
Modifique os membros mask, iImage e iSelectedImage da estrutura recém-retornada, usando os valores apropriados.
Faça uma chamada para CComboBoxEx::SetItem, passando a estrutura modificada.
O exemplo a seguir demonstra esse procedimento trocando as imagens selecionadas e não selecionadas do terceiro item de caixa de combinação estendida:
COMBOBOXEXITEM cbi = {0};
int iImageTemp;
cbi.mask = CBEIF_IMAGE | CBEIF_SELECTEDIMAGE;
cbi.iItem = 0;
m_ComboBoxEx.GetItem(&cbi);
iImageTemp = cbi.iImage;
cbi.iImage = cbi.iSelectedImage;
cbi.iSelectedImage = iImageTemp;
VERIFY(m_ComboBoxEx.SetItem(&cbi));