ツリービューのアイテムの属性が格納されます。
typedef struct tagTVITEM { UINT mask; // 有効メンバを示すフラグ HTREEITEM hItem; // アイテムのハンドル UINT state; // アイテムの状態・イメージ UINT stateMask; // state のフラグ LPTSTR pszText; // アイテムの文字列 int cchTextMax; // アイテムの文字列の長さ int iImage; // イメージのインデックス(非選択時) int iSelectedImage; // イメージのインデックス(選択時) int cChildren; // 子アイテムを持つかどうかのフラグ LPARAM lParam; // アイテムの持つ32ビット値 } TVITEM, *LPTVITEM;
この構造体のどのメンバが有効かを指定します。 TVM_GETITEM メッセージでこの構造体が使われる場合には、このメンバはどの属性を取得するのかを指定します。
以下の値の組み合わせで指定します。
値 | 有効なメンバ |
---|---|
0x0001 (TVIF_TEXT) | pszText, cchTextMax |
0x0002 (TVIF_IMAGE) | iImage |
0x0004 (TVIF_PARAM) | lParam |
0x0008 (TVIF_STATE) | state, stateMask |
0x0010 (TVIF_HANDLE) | hItem |
0x0020 (TVIF_SELECTEDIMAGE) | iSelectedImage |
0x0040 (TVIF_CHILDREN) | cChildren |
0x1000 (TVIF_DI_SETITEM) | ツリービューコントロールが与えられた情報を保持し、再度情報を要求しないようにします。このフラグは TVN_GETDISPINFO 通知メッセージを処理する場合にのみ有効です。 |
ツリービューのアイテムを識別するためのハンドルが格納されます。
ビットフラグと、アイテムの状態を示すイメージリストインデックスのセットが格納されます。
このメンバのビット 0 からビット 7 まではアイテムの状態を表すフラグを表します。
このメンバのビット 8 からビット 11 までは、 1 から始まるオーバーレイイメージのインデックスを表します。インデックスが 0 の場合は、オーバレイイメージを持たないことを示します。オーバーレイイメージとは、ショートカットアイコンの矢印イメージなどのように、アイテムのアイコンの上に重なって表示されるイメージのことです。このイメージインデックスを取得するには、このメンバの値に 0x0F00 (TVIS_OVERLAYMASK) をAND結合します。オーバーレイイメージを設定するには、インデックスを8ビット左シフトしてからOR結合します。オーバーレイイメージのリストは ImageList_SetOverlayImage 関数で設定します。
このメンバのビット 12 からビット 15 までは、状態イメージのインデックスを表します。 0 のときは状態イメージを持ちません。状態イメージは、アプリケーション定義の状態を示すのにアイテムアイコンの横に表示されます。このビットを取り出すには、このメンバの値に 0xF000 (LVIS_STATEIMAGEMASK) をAND結合します。状態イメージを設定するには、インデックスを12ビット左シフトしてからOR結合します。状態イメージリストは TVM_SETIMAGELIST メッセージで指定されます。
state メンバのどのビットについて取得または設定するのかを指定します。(state メンバの説明を参照)
アイテムの状態を操作するにはそれぞれ対応するビットフラグを、オーバーレイイメージのインデックスを操作するには 0x0F00 (TVIS_OVERLAYMASK) を、状態イメージのインデックスを操作するには 0xF000 (TVIS_STATEIMAGEMASK) を組み合わせて指定します。
このメンバは、他の状態意を変更させることなく任意のアイテムの状態を変更できるようにします。例えば、このメンバに LVIS_SELECTED を指定して state メンバに 0 を指定すると、アイテムは選択されていない状態になりますが、他の状態は変化しません。
アイテム情報を設定する場合は、アイテムに表示する文字列のアドレスを指定します。このメンバに -1 (LPSTR_TEXTCALLBACK) を指定した場合は、親ウィンドウはアイテムのテキストを保持しておき、 TVN_GETDISPINFO および TVN_SETDISPINFO 通知メッセージを処理しなくてはなりません。
アイテム情報を取得する場合は、文字列を受け取るためのバッファのアドレスを指定します。
アイテム情報を取得する場合は、 pszText メンバで示されるバッファのサイズをバイト単位(Unicode 版の場合は文字数)で指定します。それ以外の場合は、このメンバは無視されます。
アイテムが選択されていない状態のときに表示されるイメージの、ツリービューのイメージリスト中におけるインデックスが格納されます。このメンバに -1 (I_IMAGECALLBACK) を指定した場合は、親ウィンドウはイメージのインデックスを保持しておき、 TVN_GETDISPINFO 通知メッセージを処理しなくてはなりません。
アイテムが選択されている状態のときに表示されるイメージの、ツリービューのイメージリスト中におけるインデックスが格納されます。このメンバに -1 (I_IMAGECALLBACK) を指定した場合は、親ウィンドウはイメージのインデックスを保持しておき、 TVN_GETDISPINFO 通知メッセージを処理しなくてはなりません。
アイテムが子アイテムと関連付けられたかどうかを示すフラグが格納されます。
0 のとき、このアイテムが子アイテムを持っていないことを示します。
1 のとき、このアイテムが1つ以上の子アイテムを持っていることを示します。
-1 (I_CHILDRENCALLBACK) のとき、親ウィンドウはこのアイテムが子アイテムを持つかどうかを保持しておき、 TVN_GETDISPINFO 通知メッセージを処理しなくてはなりません。
ツリービューが TVS_HASBUTTON スタイルを持つ場合は、子アイテムの存在を示すプラス・マイナスのボタンを表示するかどうかがこのメンバによって決定されます。アイテムが子アイテムを持っていない場合でも、このメンバを設定することによって、強制的にプラス・マイナスのボタンを表示させることができます。
アイテムと関連付けられる32ビット値が格納されます。
Windows 95 以降 / Windows NT 3.51 以降
HSP 変数 | メンバ | ||
---|---|---|---|
メンバ名 | オフセット | サイズ | |
tvitem.0 | mask | 0 | 4 |
tvitem.1 | hItem | 4 | 4 |
tvitem.2 | state | 8 | 4 |
tvitem.3 | stateMask | 12 | 4 |
tvitem.4 | pszText | 16 | 4 |
tvitem.5 | cchTextMax | 20 | 4 |
tvitem.6 | iImage | 24 | 4 |
tvitem.7 | iSelectedImage | 28 | 4 |
tvitem.8 | cChildren | 32 | 4 |
tvitem.9 | lParam | 36 | 4 |
state メンバを格納するには
itemstate = (アイテムの状態) iOverlay = (オーバーレイイメージのインデックス) iState = (状態イメージのインデックス) lvitem.2 = itemstate | (iOverlay << 8) | (iState << 12)
state メンバから各値を取り出すには
itemstate = lvitem.2 & 0x00FF iOverlay = (lvitem.2 & 0x0F00) >> 8 iState = (lvitem.2 & 0xF000) >> 12