Partilhar via


Visão geral dos estados de item de controle da árvore

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

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

Quando você especificar ou alterar o estado de um item, o parâmetro de nStateMask especifica que indicam bit para definir, e o parâmetro de nState contém os novos valores para os bits. Por exemplo, o exemplo a seguir altera o estado atual de um item pai (especificado por hParentItem) em um objeto de CTreeCtrl ()m_treeCtrla 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 alterar o estado seria definir a imagem da sobreposição de um item. Para fazer isso, nStateMask deve incluir o valor de TVIS_OVERLAYMASK , e nState deve incluir o índice da imagem da sobreposição deslocada à esquerda oito bit usando a macro de INDEXTOOVERLAYMASK . O índice pode ser 0 para especificar nenhuma imagem da sobreposição. A imagem da sobreposição deve ter sido adicionada à lista de controle de árvore de imagens de sobreposição por uma chamada anterior à função de CImageList::SetOverlayImage . A função especifica o índice da imagem para adicionar; esse é o índice usado com a macro de INDEXTOOVERLAYMASK . Um controle de árvore pode ter até quatro imagens cobertas.

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

Consulte também

Referência

Usando CTreeCtrl

Conceitos

Controles (MFC)