Compartilhar via


Como trabalhar com índices de imagem de estado

Muitas vezes há confusão sobre como definir e recuperar o índice de imagem de estado em um controle de exibição em árvore. Os exemplos a seguir demonstram o método adequado para definir e recuperar o índice de imagem de estado. Os exemplos pressupõem que há apenas dois índices de imagem de estado no controle de exibição em árvore, desmarcados e verificados. Se o aplicativo contiver mais de dois, essas funções precisarão ser modificadas para lidar com esse caso.

O que você precisa saber

Tecnologias

Pré-requisitos

  • C/C++
  • Programação da interface do usuário do Windows

Instruções

Definir o estado de verificação de um item de exibição em árvore

O exemplo a seguir demonstra como definir o estado de verificação de um item de exibição em árvore.

  BOOL TreeView_SetCheckState(HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck)
  {
      TVITEM tvItem;

      tvItem.mask   = TVIF_HANDLE | TVIF_STATE;
      tvItem.hItem  = hItem;
      tvItem.stateMask  = TVIS_STATEIMAGEMASK;

      // Image 1 in the tree-view check box image list is the unchecked box. 
      // Image 2 is the checked box.

      tvItem.state = INDEXTOSTATEIMAGEMASK((fCheck ? 2 : 1));

      return TreeView_SetItem(hwndTreeView, &tvItem);
  }

Recuperar o estado de verificação de um item de exibição em árvore

O exemplo a seguir demonstra como recuperar o estado de verificação de um item de exibição em árvore.

  BOOL TreeView_GetCheckState(HWND hwndTreeView, HTREEITEM hItem)
  {
      TVITEM tvItem;

      // Prepare to receive the desired information.
      tvItem.mask   = TVIF_HANDLE | TVIF_STATE;
      tvItem.hItem  = hItem;
      tvItem.stateMask  = TVIS_STATEIMAGEMASK;

      // Request the information.
      TreeView_GetItem(hwndTreeView, &tvItem);

      // Return zero if it's not checked, or nonzero otherwise.
      return ((BOOL)(tvItem.state >> 12) - 1);
  }

Usando controles de exibição em árvore

Exemplo de CustDTv ilustra o desenho personalizado em um controle Tree-View