次の方法で共有


状態イメージ インデックスを操作する方法

ツリー ビュー コントロールで状態イメージ インデックスを設定および取得する方法については、混乱が生じることがよくあります。 次の例は、状態イメージ インデックスを設定および取得するための適切な方法を示しています。 この例では、ツリー ビュー コントロールに状態イメージ インデックスが 2 つ (オフとオン) しか存在しないことを前提としています。 アプリケーションに複数の関数が含まれている場合、そのケースを処理するためにこれらの関数を変更する必要があります。

知っておくべきこと

テクノロジ

前提条件

  • C/C++
  • Windows ユーザー インターフェイス プログラミング

手順

ツリー ビュー 項目のチェック状態の設定

次の例では、ツリー ビュー項目のチェック状態を設定する方法を示します。

  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 サンプルはツリー ビュー コントロールのカスタム描画を示す