Partilhar via


Visão geral de estados de Item de controle de árvore

Cada item em um controle de árvore (CTreeCtrl) tem um estado atual.Por exemplo, um item pode ser selecionado, desativado, expandido e assim por diante.Na maior parte, o controle de árvore automaticamente define o estado do item para refletir as ações do usuário, como a seleção de um item.No entanto, você também pode definir o estado de um item usando o SetItemState função de membro e recuperar o estado atual de um item usando o GetItemState função de membro.Para obter uma lista completa dos Estados do item, consulte Constantes de controle de exibição de árvore na Windows SDK.

Estado atual do item é especificado pelo nState parâmetro.Um controle de árvore pode alterar o estado do item para refletir uma ação do usuário, como, por exemplo, selecionando o item ou definir o foco para o item.Além disso, um aplicativo pode alterar o estado do item para desativar ou ocultar o item ou para especificar uma imagem de sobreposição ou imagem de estado.

Quando você especificar ou alterar o estado do item, o nStateMask parâmetro especifica qual estado bits para definir e o nState parâmetro contém os novos valores para esses bits.Por exemplo, o exemplo seguinte altera o estado atual de um item pai (especificado por hParentItem) em um CTreeCtrl objeto (m_treeCtrl) para TVIS_EXPANDPARTIAL:

TVITEM curItem;
HTREEITEM hParentItem;

hParentItem = m_TreeCtrl.GetSelectedItem();

//modify the parent item to keep the '+' sign
curItem.mask = TVIF_STATE | TVIF_HANDLE;
curItem.hItem = hParentItem;
curItem.state = TVIS_EXPANDPARTIAL;
curItem.stateMask = TVIS_EXPANDPARTIAL;
m_TreeCtrl.SetItem(&curItem);

Outro exemplo de como alterar o estado seria definir imagem de sobreposição do item.Para fazer isso, nStateMask deve incluir o TVIS_OVERLAYMASK valor, e nState deve incluir o índice baseada em um da imagem de sobreposição deslocado à esquerda oito bits usando o INDEXTOOVERLAYMASK macro.O índice pode ser 0 para não especificar nenhuma imagem de sobreposição.A imagem de sobreposição deverá ter sido adicionada à lista de controle de árvore de imagens de sobreposição por uma chamada anterior a CImageList::SetOverlayImage função.A função especifica o índice baseado em uma imagem para adicionar; Este é o índice usado com o INDEXTOOVERLAYMASK macro.Um controle de árvore pode ter até quatro imagens de sobreposição.

Para definir a imagem de estado do item, nStateMask deve incluir o TVIS_STATEIMAGEMASK valor, e nState deve incluir o índice baseada em um da imagem de estado deslocada à esquerda 12 bits usando o INDEXTOSTATEIMAGEMASK macro.O índice pode ser 0 para não especificar nenhuma imagem de estado.Para obter mais informações sobre imagens de sobreposição e estado, consulte Árvore de controle de imagem lista.

Consulte também

Referência

Usando CTreeCtrl

Conceitos

Controles (MFC)