Visão geral de estados de item de controle de árvore
Cada item em um controle de árvore (CTreeCtrl) tem um estado corrente.Por exemplo, um item pode ser selecionado, desabilitado, expandido e assim por diante.Na maior parte, o controle de árvore define automaticamente o estado do item para refletir sistema autônomo ações do usuário, sistema autônomo seleção de um item.No entanto, você também pode conjunto o estado de um item usando o SetItemState função de membro e recuperar o estado corrente de um item usando o GetItemStatefunção de membro .Para obter uma lista completa dos Estados do item, consulte Constantes de controle do modo de exibição de árvore in the Windows SDK.
Estado corrente 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, sistema autônomo 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 para especificar uma imagem de sobreposição ou imagem de estado.
Quando você especifica ou altera o estado do item, o nStateMask parâmetro especifica qual estado de bits para conjunto e o nState parâmetro contém os novos valores para esses bits. Por exemplo, o exemplo a seguir altera o estado corrente de um item pai (especificado por hParentItem) em um CTreeCtrl () objetom_treeCtrl) a 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 conjunto imagem de sobreposição do item.Para fazer isso, nStateMask deve incluir o TVIS_OVERLAYMASK valor, e nState deve incluir o índice com base em um da imagem sobreposição deslocado deixado 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 do controle da árvore de imagens de sobreposição por uma telefonar anterior a CImageList::SetOverlayImage função.A função especifica o índice com base em um de imagem para adicionar; este é o índice usado com o INDEXTOOVERLAYMASK macro.Um controle de árvore pode ter até quatro imagens de sobreposição.
Para conjunto a imagem de estado do item, nStateMask deve incluir o TVIS_STATEIMAGEMASK valor, e nState deve incluir o índice baseado em um de estado de imagem 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 Listas de imagens de controle de árvore.