TVINSERTSTRUCT
包含添加新項(xiàng)到樹形視控件所使用的信息。這個結(jié)構(gòu)被TVM_INSERTITEM消息使用。這個結(jié)構(gòu)與TV_INSERTSTRUCT結(jié)構(gòu)是一樣的,但它已經(jīng)按當(dāng)前的命名習(xí)慣重命名了。
typedef struct tagTVINSERTSTRUCT {
HTREEITEM hParent;
HTREEITEM hInsertAfter;
#if (_WIN32_IE >= 0x0400)
union
{
TVITEMEX itemex;
TVITEM item;
} DUMMYUNIONNAME;
#else
TVITEM item;
#endif
} TVINSERTSTRUCT, FAR *LPTVINSERTSTRUCT;
成員
- hParent
- 父項(xiàng)的句柄。如果這個成員的值是TVI_ROOT或NULL,這項(xiàng)將被作為樹形控件的根插入。
- hInsertAfter
- 插入的新項(xiàng)之后的項(xiàng)的句柄。或是下列值之一:
值 |
意味 |
TVI_FIRST |
在列表的開始插入項(xiàng) |
TVI_LAST |
在列表的最后插入項(xiàng) |
TVI_ROOT |
作為一個根項(xiàng)添加 |
TVI_SORT |
以字母順序插入項(xiàng) |
- itemex
- 版本4.71。TVITEMEX包含關(guān)于項(xiàng)添加的信息。
- item
- TVITEM包含關(guān)于項(xiàng)添加的信息。
需求
Windows NT/2000:需要Windows NT 3.51或更高版本。
Windows 95/98:需要Windows 95或更高版本。
Header:定義在commctrl.h。
TVITEM
指定或接收樹形視項(xiàng)的屬性。這個結(jié)構(gòu)與TV_ITEM結(jié)構(gòu)一樣,但它已經(jīng)被當(dāng)前命名協(xié)議重新命名了。新的應(yīng)用程序應(yīng)該使用這個結(jié)構(gòu)。
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
- 指出其它的結(jié)構(gòu)成員哪些包含有效數(shù)據(jù)的標(biāo)記數(shù)組。當(dāng)這個結(jié)構(gòu)被TVM_GETITEM消息使用時(shí),mask成員指出項(xiàng)的屬性被取回。這個成員可以是下列值的一個或多個。
TVIF_CHILDREN |
cChildren成員是有效的。 |
TVIF_DI_SETITEM |
樹形視控件將保留支持信息并且不重新請求它。當(dāng)處理TVN_GETDISPINF通知時(shí),這個標(biāo)記是有效的。 |
TVIF_HANDLE |
hItem成員有效。 |
TVIF_IMAGE |
iImage成員有效。 |
TVIF_PARAM |
lParam成員有效。 |
TVIF_SELECTEDIMAGE |
iSelectedImage成員有效。 |
TVIF_STATE |
state和stateMask成員有效。 |
TVIF_TEXT |
pszText和cchTextMax成員有效。 |
- hItem
- 這個函數(shù)引用的項(xiàng)。
- state
- 位標(biāo)記和圖像列表索引的設(shè)置,指出項(xiàng)的狀態(tài)。當(dāng)設(shè)置了一個項(xiàng)的狀態(tài),stateMask成員指出這個成員的位是有效的。當(dāng)取加一個項(xiàng)的狀態(tài)時(shí),這個成員返回stateMask成員指出的位的當(dāng)前狀態(tài)。
這個成員的0至7位包含了項(xiàng)的狀態(tài)標(biāo)記。關(guān)于可能的項(xiàng)狀態(tài)標(biāo)記,參見Tree View Control Item States.
覆蓋圖像覆蓋在項(xiàng)的圖標(biāo)圖像之上。這個成員的8至11位指定了以1為基準(zhǔn)的覆蓋圖像索引。如果這些位是0,這個項(xiàng)沒有覆蓋圖像。要隔離這些位,使用TVIS_OVERLAYMASK掩碼。要在這個成員中設(shè)置覆蓋圖像索引,使用INDEXTOOVERLAYMASK宏。圖像列表的覆蓋圖像是被ImageList_SetOverlayImage函數(shù)設(shè)置的。
一個狀態(tài)圖像是僅次于指出應(yīng)用程序定義的狀態(tài)的項(xiàng)的圖標(biāo)顯示的。通過發(fā)送TVM_SETIMAGELIST消息來指定一個狀態(tài)圖像列表。要設(shè)置一個項(xiàng)的狀態(tài)圖像,在TVITEM結(jié)構(gòu)的stateMask成員中包含TVIS_STATEIMAGEMASK值。結(jié)構(gòu)的state成員的12至15位指定狀態(tài)圖像列表中被繪制圖像的索引。
要設(shè)置狀態(tài)圖像索引,使用INDEXTOSTATEIMAGEMASK。這個宏把一個索引適當(dāng)?shù)脑O(shè)置到12至15位上。要指出項(xiàng)沒有狀態(tài)圖像,設(shè)置索引為0。這意味著在狀態(tài)圖像列表中的圖像0不能被作為一個狀態(tài)圖像使用。要隔離state成員的位12至15,使用TVIS_STATEIMAGEMASK掩碼。
- stateMask
- state成員的位是有效的。如果你取回了一個項(xiàng)的狀態(tài),設(shè)置stateMask成員的位來指出state成員中的這個位被返回。如果你設(shè)置了一個項(xiàng)的狀態(tài),設(shè)置stateMask成員的位來指出state成員的這個位是你想設(shè)置的。要設(shè)置或取回一個項(xiàng)的覆蓋圖像的索引,設(shè)置TVIS_OVERLAYMASK位。要設(shè)置和取回一個項(xiàng)的狀態(tài)圖像索引,設(shè)置TVIS_STATEIMAGEMASK位。
- pszText
- 如果這個結(jié)構(gòu)指定了項(xiàng)屬性,那么這個成員是指向一個以空字符結(jié)束的字符串,包含有項(xiàng)的文本。如果這個成員是值LPSTR_TEXTCALLBACK,那么父窗口為保存名字負(fù)責(zé)。既然這樣,當(dāng)樹形視控件需要顯示、保存或編輯項(xiàng)文本時(shí),向父窗口發(fā)送TVN_GETDISPINFO通過消息,當(dāng)項(xiàng)文本改變時(shí),發(fā)送TVN_SETDISPINFO通知消息。
如果結(jié)構(gòu)是取回項(xiàng)的屬性,這個成員是取回項(xiàng)文本緩沖的地址。
- cchTextMax
- pszText成員指定緩沖的大小,以字符為單位。如果這個結(jié)構(gòu)被使用來設(shè)置項(xiàng)屬性,這個成員被忽略。
- iImage
- 當(dāng)項(xiàng)是在非選擇狀態(tài)中時(shí),是樹形控件的圖像列表的索引。
如果這個成員是值I_IMAGECALLBACK,父窗口為保存索引負(fù)責(zé)。既然這樣,當(dāng)樹形視控件需要顯示這個圖像時(shí),向父窗口發(fā)送TVN_GETDISPINFO通知消息來獲得索引。
- iSelectedImage
- 當(dāng)項(xiàng)被選擇時(shí),是樹形控件圖像列表的索引。
如果這個成員是值I_IMAGECALLBACK,父窗口為保存索引負(fù)責(zé)。既然這樣,當(dāng)樹形視控件需要顯示這個圖像時(shí),向父窗口發(fā)送TVN_GETDISPINFO通知消息來獲得索引。
- cChildren
- 標(biāo)記指出哪一個項(xiàng)有關(guān)聯(lián)的子項(xiàng)。這個成員可以是下列值之一。
zero |
這個項(xiàng)沒有子項(xiàng)。 |
one |
這個項(xiàng)有一個或更多的子項(xiàng)。 |
I_CHILDRENCALLBACK |
The parent window keeps track of whether the item has child items. In this case, when the tree view control needs to display the item, the control sends the parent a TVN_GETDISPINFO notification message to determine whether the item has child items.
If the tree view control has the TVS_HASBUTTONS style, it uses this member to determine whether to display the button indicating the presence of child items. You can use this member to force the control to display the button even though the item does not have any child items inserted. This allows you to display the button while minimizing the control's memory usage by inserting child items only when the item is visible or expanded.
|
- lParam
- 與這項(xiàng)相關(guān)的32位值。
需要
Windows NT/2000:需要Windows NT 3.51或更高版本。
Windows 95/98:需要Windows 95或更高版本。
Header:定義在commctrl.h。
NMTREEVIEW
包含關(guān)于樹形視通知消息的信息。這個結(jié)構(gòu)與NM_TREEVIEW結(jié)構(gòu)一樣,但它已經(jīng)用當(dāng)前的命名規(guī)則進(jìn)行了重命名。
typedef struct tagNMTREEVIEW {
NMHDR hdr;
UINT action;
TVITEM itemOld;
TVITEM itemNew;
POINT ptDrag;
} NMTREEVIEW, FAR *LPNMTREEVIEW;
成員
- hdr
- NMHDR結(jié)構(gòu),包含了關(guān)于這個通知消息的信息
- action
- 通知指定的動作標(biāo)記。
- itemOld
- 包含關(guān)于舊項(xiàng)狀態(tài)信息的TVITEM結(jié)構(gòu)。通知消息沒有使用它時(shí),這個成員為0。
- itemNew
- 包含關(guān)于新項(xiàng)狀態(tài)信息的TVITEM結(jié)構(gòu)。通知消息沒有使用它時(shí),這個成員為0。
- ptDrag
- 包含引起通知消息發(fā)送的事件信息的POINT結(jié)構(gòu)。
參見
WM_NOTIFY