共用方式為


TVITEMW 結構 (commctrl.h)

指定或接收樹檢視項目的屬性。 此結構與 TV_ITEM 結構相同,但已重新命名為遵循目前的命名慣例。 新的應用程式應該使用此結構。

語法

typedef struct tagTVITEMW {
  UINT      mask;
  HTREEITEM hItem;
  UINT      state;
  UINT      stateMask;
  LPWSTR    pszText;
  int       cchTextMax;
  int       iImage;
  int       iSelectedImage;
  int       cChildren;
  LPARAM    lParam;
} TVITEMW, *LPTVITEMW;

成員

mask

類型:UINT

表示其他結構成員包含有效數據的旗標數位。 當這個結構與 TVM_GETITEM 訊息搭配使用時,遮罩 成員會指出要擷取的項目屬性。 如果搭配 TVM_SETITEM 訊息使用,遮罩 會指出要設定的屬性。 這個成員可以是下列其中一或多個值:

價值 意義
TVIF_CHILDREN
cChildren 成員有效。
TVIF_DI_SETITEM
樹視圖控件會保留所提供的資訊,而且不會再次要求它。 只有在處理 TVN_GETDISPINFO 通知時,此旗標才有效。
TVIF_HANDLE
hItem 成員有效。
TVIF_IMAGE
iImage 成員有效。
TVIF_PARAM
lParam 成員有效。
TVIF_SELECTEDIMAGE
iSelectedImage 成員有效。
TVIF_STATE
狀態stateMask 成員有效。
TVIF_TEXT
pszTextcchTextMax 成員有效。

hItem

類型:HTREEITEM

專案的句柄。

state

類型:UINT

一組指出項目狀態的位旗標和影像清單索引。 設定項目的狀態時,stateMask 成員表示此成員的有效位。 擷取項目的狀態時,這個成員會傳回 stateMask 成員中所指示位的目前狀態。

此成員的位 0 到 7 包含項目狀態旗標。 如需可能的項目狀態旗標清單,請參閱 Tree-View 控制項目狀態

 

重疊影像會加疊在項目的圖示影像上。 此成員的位 8 到 11 指定一個架構的重疊影像索引。 如果這些位為零,則項目沒有重疊影像。 若要隔離這些位,請使用 TVIS_OVERLAYMASK 遮罩。 若要在此成員中設定重疊影像索引,請使用 INDEXTOOVERLAYMASK 巨集。 影像清單的重疊影像會使用 ImageList_SetOverlayImage 函式來設定。

 

狀態影像會顯示在項目圖示旁,以指出應用程式定義的狀態。 藉由傳送 TVM_SETIMAGELIST 訊息來指定狀態映像清單。 若要設定專案的狀態影像,請在 stateMask 成員中包含 TVITEM 結構中的 TVIS_STATEIMAGEMASK 值。 結構 狀態的位 12 到 15 位 成員指定要繪製之影像的狀態影像清單中索引。

 

若要設定狀態影像索引,請使用 INDEXTOSTATEIMAGEMASK。 此巨集會採用索引,並適當地設定位 12 到 15。 若要指出項目沒有狀態影像,請將索引設定為零。 此慣例表示狀態映像清單中的影像零不能當做狀態映像使用。 若要隔離 狀態 成員的 12 到 15 位,請使用 TVIS_STATEIMAGEMASK 遮罩。

stateMask

類型:UINT

有效的 狀態 位。 如果您要擷取項目的狀態,請設定 stateMask 成員的位,以指出要以 狀態傳回的位 成員。 如果您要設定項目的狀態,請設定 stateMask 成員的位,以指出您想要設定之 狀態 成員的位。 若要設定或擷取專案的重疊影像索引,請設定 TVIS_OVERLAYMASK 位。 若要設定或擷取項目的狀態影像索引,請設定 TVIS_STATEIMAGEMASK 位。

pszText

類型:LPTSTR

如果結構指定專案屬性,則為 Null 終止字串的指標,其中包含項目文字。 如果這個成員是LPSTR_TEXTCALLBACK值,父視窗會負責儲存名稱。 在此情況下,樹視圖控件會在專案文字變更時,將父視窗傳送 TVN_GETDISPINFO 通知碼,以便顯示、排序或編輯專案,以及 TVN_SETDISPINFO 通知程式代碼。 如果結構正在接收專案屬性,則這個成員是接收專案文字之緩衝區的位址。 請注意,雖然樹視圖控件允許任何長度字串儲存為項目文字,但只會顯示前 260 個字元。

cchTextMax

類型:int

pszText 成員所指向的緩衝區大小,以字元為單位。 如果使用這個結構來設定項目屬性,則會忽略此成員。

iImage

類型:int

當項目處於非選取狀態時,樹視圖控件之圖示影像影像清單中的索引。 如果這個成員是I_IMAGECALLBACK值,父視窗會負責儲存索引。 在此情況下,樹視圖控件會傳送父系 TVN_GETDISPINFO 通知程序代碼,以在需要顯示影像時擷取索引。

iSelectedImage

類型:int

樹檢視控件之圖示影像清單的索引,當專案處於選取狀態時,要使用的圖示影像清單。 如果這個成員是I_IMAGECALLBACK值,父視窗會負責儲存索引。 在此情況下,樹視圖控件會傳送父系 TVN_GETDISPINFO 通知程序代碼,以在需要顯示影像時擷取索引。

cChildren

類型:int

旗標,指出專案是否具有相關聯的子專案。 這個成員可以是下列其中一個值。

價值 意義
項目沒有子專案。
一個
專案有一或多個子專案。
I_CHILDRENCALLBACK
父視窗會追蹤專案是否具有子專案。 在此情況下,當樹視圖控件需要顯示專案時,控件會傳送父代 TVN_GETDISPINFO 通知程序代碼,以判斷專案是否有子專案。

如果樹檢視控件具有 TVS_HASBUTTONS 樣式,它會使用此成員來判斷是否顯示指出子專案的按鈕。 您可以使用這個成員來強制控件顯示按鈕,即使項目沒有插入任何子專案也一樣。 這可讓您顯示按鈕,同時將控件的記憶體使用量降至最低,方法是只在顯示或展開專案時插入子專案。

I_CHILDRENAUTO

6.0 版適用於內部使用;不建議在應用程式中使用。 樹視圖控件會自動判斷專案是否具有子專案。

注意 未來版本的 Comctl32.dll可能不支援此旗標。 此外,commctrl.h 中並未定義此旗標。 將下列定義新增至應用程式的來源檔案,以使用 旗標:
#define I_CHILDRENAUTO (-2)
 

lParam

類型:LPARAM

要與專案產生關聯的值。

言論

注意

commctrl.h 標頭會將 TVITEM 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 commctrl.h