ListView_SetItemState宏 (commctrl.h)

變更清單檢視控件中項目的狀態。 您可以使用此宏,或明確傳送 LVM_SETITEMSTATE 訊息。

語法

void ListView_SetItemState(
   hwndLV,
   i,
   data,
   mask
);

參數

hwndLV

類型: HWND

清單檢視控件的句柄。

i

類型: int

清單檢視專案的索引。 如果此參數為 -1,則狀態變更會套用至所有專案。

data

類型: UINT

專案的新狀態位。 mask 參數表示狀態參數的有效位。 如果未在mask參數中設定對應的位,宏就會忽略 state 參數位。 低序位元組包含一組位旗標,指出項目的狀態。 這個位元組可以是下列值的組合:

意義
LVIS_CUT
:項目已標記為進行剪貼作業。
LVIS_DROPHILITED
:項目會隨著拖放目標而反白顯示。
LVIS_FOCUSED
專案具有焦點,因此會以標準焦點矩形括住。 雖然可以選取多個專案,但只有一個專案可以有焦點。
LVIS_SELECTED
這個項目已選取。 選取項目的外觀取決於它是否具有焦點,以及用於選取的系統色彩。 只有在清單檢視控件有焦點或使用 LVS_SHOWSELALWAYS 樣式時,才會顯示為選取的專案。

mask

類型: UINT

您要設定或清除 的狀態 參數位。 您可以使用 ListView_SetItemState 來設定 和 來清除位。 若要設定專案的重疊影像索引,請設定 LVIS_OVERLAYMASK 位。 若要設定專案的狀態影像索引,請設定 LVIS_STATEIMAGEMASK 位。

傳回值

備註

項目的狀態值包含一組位旗標,指出項目的狀態。 狀態值也可以包含影像清單索引,指出專案的狀態影像和重疊影像。

mask 參數會指定您想要修改的狀態位,而 state 參數會指定這些位的新值。 若要在專案的內部狀態中設定位,請將它設定為 遮罩狀態 參數。 若要清除項目內部狀態中的位,請在 mask 參數中設定它,並在 state 參數中清除它。 若要讓專案的內部狀態維持不變,請在 mask 參數中清除它。

狀態參數的位 8 到 11 指定控制件影像清單中重疊影像的單一式索引。 完整大小的圖示影像清單和小型圖示影像清單都可以有重疊影像。 重疊影像會覆疊在項目的圖示影像上。 如果這些位為零,則項目沒有重疊影像。 若要隔離這些位,請使用 LVIS_OVERLAYMASK 遮罩。 若要指定重疊索引,請使用 INDEXTOOVERLAYMASK 宏。

狀態參數的位 12 到 15 指定控制件狀態影像清單中的影像單一索引。 狀態影像會顯示在專案的圖示旁邊,以指出應用程式定義的狀態。 如果這些位為零,則項目沒有狀態影像。 若要隔離這些位,請使用 LVIS_STATEIMAGEMASK 遮罩。 若要指定狀態影像索引,請使用 INDEXTOSTATEIMAGEMASK 宏。

規格需求

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

另請參閱

ListView_GetItemState