Arbeiten mit Zustandsbildindizes

Es gibt häufig Verwirrung darüber, wie der Zustandsbildindex in einem Strukturansichtssteuerelement festgelegt und abgerufen werden kann. Die folgenden Beispiele veranschaulichen die richtige Methode zum Festlegen und Abrufen des Zustandsbildindexes. In den Beispielen wird davon ausgegangen, dass im Strukturansichtssteuerelement nur zwei Zustandsbildindizes vorhanden sind, die deaktiviert und aktiviert sind. Wenn Ihre Anwendung mehr als zwei enthält, müssen diese Funktionen geändert werden, um diesen Fall zu behandeln.

Wichtige Informationen

Technologien

Voraussetzungen

  • C/C++
  • Programmierung der Windows-Benutzeroberfläche

Anweisungen

Festlegen des Überprüfungsstatus eines Tree-View Elements

Im folgenden Beispiel wird veranschaulicht, wie der Überprüfungsstatus eines Baumansichtselements festgelegt wird.

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

Abrufen des Überprüfungsstatus eines Tree-View Elements

Im folgenden Beispiel wird veranschaulicht, wie der Überprüfungsstatus eines Baumansichtselements abgerufen wird.

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

Verwenden von Tree-View-Steuerelementen

CustDTv-Beispiel veranschaulicht benutzerdefiniertes Zeichnen in einem Tree-View-Steuerelement