Freigeben über


So arbeiten Sie mit Statusbildindizes

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

Was Sie wissen müssen

Technologieen

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