Ağaç Denetim Öğesi Durumlarına Genel Bakış
Ağaç denetimindeki (CTreeCtrl) her öğenin geçerli durumu vardır. Örneğin, bir öğe seçilebilir, devre dışı bırakılabilir, genişletilebilir vb. Çoğunlukla, ağaç denetimi bir öğenin durumunu otomatik olarak bir öğenin seçimi gibi kullanıcı eylemlerini yansıtacak şekilde ayarlar. Ancak, SetItemState üye işlevini kullanarak bir öğenin durumunu ayarlayabilir ve GetItemState üye işlevini kullanarak öğenin geçerli durumunu alabilirsiniz. Öğe durumlarının tam listesi için bkz . Windows SDK'sında Ağaç Görünümü Denetim Sabitleri .
Bir öğenin geçerli durumu nState parametresi tarafından belirtilir. Ağaç denetimi, öğeyi seçme veya odağı öğeye ayarlama gibi bir kullanıcı eylemini yansıtacak şekilde öğenin durumunu değiştirebilir. Buna ek olarak, bir uygulama öğeyi devre dışı bırakmak veya gizlemek ya da katman görüntüsü veya durum görüntüsü belirtmek için öğenin durumunu değiştirebilir.
Bir öğenin durumunu belirttiğinizde veya değiştirdiğinizde, nStateMask parametresi hangi durum bitlerinin ayarlandığını belirtir ve nState parametresi bu bitler için yeni değerleri içerir. Örneğin, aşağıdaki örnek nesnedeki (m_treeCtrl
) TVIS_EXPANDPARTIAL
bir üst öğenin (hParentItem tarafından belirtilen) CTreeCtrl
geçerli durumunu olarak değiştirir:
TVITEM curItem;
HTREEITEM hParentItem;
hParentItem = m_TreeCtrl.GetSelectedItem();
//modify the parent item to keep the '+' sign
curItem.mask = TVIF_STATE | TVIF_HANDLE;
curItem.hItem = hParentItem;
curItem.state = TVIS_EXPANDPARTIAL;
curItem.stateMask = TVIS_EXPANDPARTIAL;
m_TreeCtrl.SetItem(&curItem);
Durumu değiştirmenin bir diğer örneği de öğenin katman görüntüsünü ayarlamaktır. Bunu başarmak için nStateMask değerini içermeli TVIS_OVERLAYMASK
ve nState, INDEXTOOVERLAYMASK makrosu kullanılarak sol sekiz bit kaydırılan katman görüntüsünün tek tabanlı dizinini içermelidir. Yer paylaşımlı görüntü belirtmek için dizin 0 olabilir. Katman görüntüsü, CImageList::SetOverlayImage işlevine önceki bir çağrıyla ağaç denetiminin katman görüntüleri listesine eklenmiş olmalıdır. işlevi, eklenecek görüntünün tek tabanlı dizinini belirtir; bu, INDEXTOOVERLAYMASK makrosuyla kullanılan dizindir. Bir ağaç denetiminde en fazla dört katman görüntüsü olabilir.
Bir öğenin durum görüntüsünü ayarlamak için nStateMask değerini içermeli TVIS_STATEIMAGEMASK
ve nState, INDEXTOSTATEIMAGEMASK makrosunu kullanarak 12 bit sola kaydırılan durum görüntüsünün tek tabanlı dizinini içermelidir. Durum görüntüsü belirtmek için dizin 0 olabilir. Katman ve durum görüntüleri hakkında daha fazla bilgi için bkz . Ağaç Denetimi Resim Listeleri.