Поделиться через


Как работать с индексами изображений состояния

Часто возникает путаница о том, как задать и получить индекс изображения состояния в элементе управления "Дерево- представление". В следующих примерах демонстрируется правильный метод настройки и получения индекса образа состояния. В примерах предполагается, что в элементе управления "Представление дерева" есть только два индекса состояния, не проверка и проверка. Если приложение содержит более двух, эти функции необходимо изменить для обработки этого дела.

Это важно знать

Технологии

Необходимые компоненты

  • C/C++
  • Программирование пользовательского интерфейса Windows

Instructions

Установка состояния проверки элемента "Дерево- представление"

В следующем примере показано, как задать состояние проверка элемента представления дерева.

  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);
  }

Получение состояния проверки элемента представления дерева

В следующем примере показано, как получить проверка проверка элемента представления дерева.

  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);
  }

Использование элементов управления "Дерево- представление"

Пример CustDTv иллюстрирует настраиваемое рисование в элементе управления "Представление дерева"