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.