ListView_SetItemState宏 (commctrl.h)
變更清單檢視控件中項目的狀態。 您可以使用此宏,或明確傳送 LVM_SETITEMSTATE 訊息。
語法
void ListView_SetItemState(
hwndLV,
i,
data,
mask
);
參數
hwndLV
類型: HWND
清單檢視控件的句柄。
i
類型: int
清單檢視專案的索引。 如果此參數為 -1,則狀態變更會套用至所有專案。
data
類型: UINT
專案的新狀態位。 mask 參數表示狀態參數的有效位。 如果未在mask參數中設定對應的位,宏就會忽略 state 參數位。 低序位元組包含一組位旗標,指出項目的狀態。 這個位元組可以是下列值的組合:
值 | 意義 |
---|---|
|
:項目已標記為進行剪貼作業。 |
|
:項目會隨著拖放目標而反白顯示。 |
|
專案具有焦點,因此會以標準焦點矩形括住。 雖然可以選取多個專案,但只有一個專案可以有焦點。 |
|
這個項目已選取。 選取項目的外觀取決於它是否具有焦點,以及用於選取的系統色彩。 只有在清單檢視控件有焦點或使用 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 |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應