如何使用狀態影像索引
在樹視圖控件中設定和擷取狀態影像索引時,通常會造成混淆。 下列範例示範設定和擷取狀態映射索引的適當方法。 這些範例假設樹狀檢視控制項中只有兩個狀態圖像索引:未選取和選取。 如果您的應用程式包含兩個以上的函式,則必須修改這些函式來處理該案例。
您需要知道的事項
技術
先決條件
- C/C++
- Windows 使用者介面程序設計
說明
設定 Tree-View 項目的檢查狀態
下列範例示範如何設定樹視圖項目的檢查狀態。
BOOL TreeView_SetCheckState(HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck)
{
TVITEM tvItem;
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK;
// Image 1 in the tree-view check box image list is the unchecked box.
// Image 2 is the checked box.
tvItem.state = INDEXTOSTATEIMAGEMASK((fCheck ? 2 : 1));
return TreeView_SetItem(hwndTreeView, &tvItem);
}
擷取 Tree-View 項目的檢查狀態
下列範例示範如何擷取樹視圖專案的檢查狀態。
BOOL TreeView_GetCheckState(HWND hwndTreeView, HTREEITEM hItem)
{
TVITEM tvItem;
// Prepare to receive the desired information.
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK;
// Request the information.
TreeView_GetItem(hwndTreeView, &tvItem);
// Return zero if it's not checked, or nonzero otherwise.
return ((BOOL)(tvItem.state >> 12) - 1);
}
相關主題