Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cada item em um controle de árvore (CTreeCtrl) tem um estado atual. Por exemplo, um item pode ser selecionado, desabilitado, expandido e assim por diante. Na maioria das vezes, 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. No entanto, você também pode definir o estado de um item usando a função de membro SetItemState e recuperar o estado atual de um item usando a função de membro GetItemState . Para obter uma lista completa de estados de item, consulte Tree-View constantes de controle no SDK do Windows.
O estado atual de um item é especificado pelo parâmetro nState . Um controle de árvore pode alterar o estado de um item para refletir uma ação do usuário, como selecionar o item ou definir o foco para o item. Além disso, um aplicativo pode alterar o estado de um item para desabilitar ou ocultar o item ou especificar uma imagem de sobreposição ou imagem de estado.
Quando você especifica ou altera o estado de um item, o parâmetro nStateMask especifica quais bits de estado definir e o parâmetro nState contém os novos valores para esses bits. Por exemplo, o exemplo a seguir 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 alteração do estado seria definir a imagem de sobreposição de um item. Para fazer isso, nStateMask deve incluir o valor TVIS_OVERLAYMASK e nState deve incluir o índice baseado em um da imagem de sobreposição deslocada oito bits para a esquerda usando a macro INDEXTOOVERLAYMASK. O índice pode ser 0, indicando que não há imagem de sobreposição. A imagem de sobreposição deve ter sido adicionada à lista de imagens de sobreposição do controle de árvore por uma chamada anterior à função CImageList::SetOverlayImage . A função especifica o índice baseado em um da imagem a ser adicionada; esse é o índice usado com a macro INDEXTOOVERLAYMASK. Um controle de árvore poderá ter até quatro imagens de sobreposição.
Para definir a imagem de estado de um item, nStateMask deverá incluir o valor TVIS_STATEIMAGEMASK e nState deverá incluir o índice de base um da imagem de estado deslocado 12 bits para a esquerda usando a macro INDEXTOSTATEIMAGEMASK. O índice pode ser 0 para não especificar nenhuma imagem de estado. Para obter mais informações sobre sobreposição e imagens de estado, consulte Listas de imagens de controle de árvore.