TVITEM是根據訊息類型的結構體。TVITEM。與TV_ITEM 一樣
基本介紹
- 中文名:TVITEM
- 外文名:TVITEM
TVITEM
該結構體根據訊息類型,TVITEM。與TV_ITEM 一樣
typedef struct tagTVITEM{
UINT mask;
HTREEITEM hItem;
UINT state;
UINT stateMask;
LPTSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int cChildren;
LPARAM lParam;} TVITEM, FAR *LPTVITEM;
成員說明
mask
TVIF_CHILDRENcChildren 成員有效
TVIF_DI_SETITEM樹形視控制項將保留支持信息並且不重新請求它。當處理TVN_GETDISPINF通知時,這個標記是有效的。
TVIF_HANDLEhItem 成員有效.
TVIF_IMAGEiImage成員有效.
TVIF_PARAMlParam成員有效.
TVIF_SELECTEDIMAGEiSelectedImage成員有效.
TVIF_STATEstate和stateMask成員有效.
TVIF_TEXTpszText和cchTextMax成員有效.hItem 這個函式引用的項。
state
位標記和圖像列表索引的設定,指出項的狀態。當設定了一個項的狀態,stateMask成員指出這個成員的位是有效的。當取加一個項的狀態時,這個成員返回stateMask成員指出的位的當前狀態。
這個成員的0至7位包含了項的狀態標記。關於可能的項狀態標記,參見Tree View Control Item States.
覆蓋圖像覆蓋在項的圖示圖像之上。這個成員的8至11位指定了以1為基準的覆蓋圖像索引。如果這些位是0,這個項沒有覆蓋圖像。要隔離這些位,使用TVIS_OVERLAYMASK掩碼。要在這個成員中設定覆蓋圖像索引,使用INDEXTOOVERLAYMASK宏。圖像列表的覆蓋圖像是被ImageList_SetOverlayImage函式設定的。一個狀態圖像是僅次於指出應用程式定義的狀態的項的圖示顯示的。通過傳送TVM_SETIMAGELIST訊息來指定一個狀態圖像列表。要設定一個項的狀態圖像,在TVITEM結構的stateMask成員中包含TVIS_STATEIMAGEMASK值。結構的state成員的12至15位指定狀態圖像列表中被繪製圖像的索引。要設定狀態圖像索引,使用INDEXTOSTATEIMAGEMASK。這個宏把一個索引適當的設定到12至15位上。要指出項沒有狀態圖像,設定索引為0。這意味著在狀態圖像列表中的圖像0不能被作為一個狀態圖像使用。要隔離state成員的位12至15,使用TVIS_STATEIMAGEMASK掩碼。
stateMask
state成員的位是有效的。如果你取回了一個項的狀態,設定stateMask成員的位來指出state成員中的這個位被返回。如果你設定了一個項的狀態,設定stateMask成員的位來指出state成員的這個位是你想設定的。要設定或取回一個項的覆蓋圖像的索引,設定TVIS_OVERLAYMASK位。要設定和取回一個項的狀態圖像索引,設定TVIS_STATEIMAGEMASK位。
pszText
如果這個結構指定了項屬性,那么這個成員是指向一個以空字元結束的字元串,包含有項的文本。如果這個成員是值LPSTR_TEXTCALLBACK,那么父視窗為保存名字負責。既然這樣,當樹形視控制項需要顯示、保存或編輯項文本時,向父視窗傳送TVN_GETDISPINFO通過訊息,當項文本改變時,傳送TVN_SETDISPINFO通知訊息。
如果結構是取回項的屬性,這個成員是取回項文本緩衝的地址。
cchTextMax
pszText成員指定緩衝的大小,以字元為單位。如果這個結構被使用來設定項屬性,這個成員被忽略。
iImage
當項是在非選擇狀態中時,是樹形控制項的圖像列表的索引。
如果這個成員是值I_IMAGECALLBACK,父視窗為保存索引負責。既然這樣,當樹形視控制項需要顯示這個圖像時,向父視窗傳送TVN_GETDISPINFO通知訊息來獲得索引。
iSelectedImage
當項被選擇時,是樹形控制項圖像列表的索引。
如果這個成員是值I_IMAGECALLBACK,父視窗為保存索引負責。既然這樣,當樹形視控制項需要顯示這個圖像時,向父視窗傳送TVN_GETDISPINFO通知訊息來獲得索引。
cChildren 標記指出哪一個項有關聯的子項。這個成員可以是下列值之一。
zero這個項沒有子項。
one這個項有一個或更多的子項。
I_CHILDRENCALLBACK用以記錄父視窗項目是否有子項目,在這種情況下,樹形控制項需要顯示項目時,控制項會傳送TVN_GETDISPINFO訊息用以確認項目是否有子項目。如果樹形控制項有TVS_HASBUTTONS樣式,它使用該成員來決定是否顯示有子項目的按鈕,可以通過這個成員來強迫顯示有子項目的按鈕,不論是否有子項目。lParam 與這項相關的32位值。 需要
Windows NT/2000:需要Windows NT 3.51或更高版本。
Windows 95/98:需要Windows 95或更高版本。
Header:定義在commctrl.h。