多くの場合、ツリー ビュー コントロールで状態イメージ インデックスを設定および取得する方法について混乱が発生します。 次の例は、状態イメージ インデックスを設定および取得するための適切な方法を示しています。 この例では、ツリー ビュー コントロールに状態イメージ インデックスが 2 つしか存在しない (オフとチェック) ことを前提としています。 アプリケーションに複数の関数が含まれている場合は、そのケースを処理するためにこれらの関数を変更する必要があります。
知っておくべきこと
技術
[前提条件]
- C/C++
- Windows ユーザー インターフェイス プログラミング
インストラクション
Tree-View 項目のチェック状態を設定する
次の例では、ツリー ビュー項目のチェック状態を設定する方法を示します。
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);
}
Tree-View 項目のチェック状態を取得する
次の例では、ツリー ビュー項目のチェック状態を取得する方法を示します。
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);
}
関連トピック
- Tree-View コントロールの使用 の