Listy obrazów kontrolki drzewa
Każdy element w kontrolce drzewa (CTreeCtrl) może mieć skojarzona parę obrazów map bitowych. Obrazy są wyświetlane po lewej stronie etykiety elementu. Jeden obraz jest wyświetlany po wybraniu elementu, a drugi jest wyświetlany, gdy element nie jest zaznaczony. Na przykład element może wyświetlać otwarty folder po wybraniu i zamknięty folder, gdy nie jest zaznaczony.
Aby użyć obrazów elementów, należy utworzyć listę obrazów, tworząc obiekt CImageList i używając funkcji CImageList::Create, aby utworzyć skojarzoną listę obrazów. Następnie dodaj żądane mapy bitowe do listy i skojarz listę z kontrolką drzewa przy użyciu funkcji składowej SetImageList . Domyślnie wszystkie elementy wyświetlają pierwszy obraz na liście obrazów zarówno dla wybranych, jak i nie zaznaczonych stanów. Zachowanie domyślne dla określonego elementu można zmienić, określając indeksy wybranych i niezaznaczonych obrazów podczas dodawania elementu do kontrolki drzewa przy użyciu funkcji składowej InsertItem . Indeksy można zmienić po dodaniu elementu przy użyciu funkcji składowej SetItemImage .
Listy obrazów kontrolki drzewa mogą również zawierać obrazy nakładki, które mają być nakładane na obrazy elementów. Wartość niezerowa w bitach od 8 do 11 stanu elementu kontrolki drzewa określa jeden indeks obrazu nakładki (0 nie wskazuje obrazu nakładki). Ponieważ używany jest 4-bitowy indeks oparty na jednym, obrazy nakładki muszą należeć do pierwszych 15 obrazów na listach obrazów. Aby uzyskać więcej informacji na temat stanów elementów kontrolki drzewa, zobacz Omówienie stanów elementów kontrolek drzewa we wcześniejszej części tego tematu.
Jeśli zostanie określona lista obrazów stanu, kontrolka drzewa rezerwuje miejsce po lewej stronie ikony każdego elementu dla obrazu stanu. Aplikacja może używać obrazów stanu, takich jak zaznaczone i wyczyszczone pola wyboru, aby wskazać stany elementów zdefiniowanych przez aplikację. Wartość niezerowa w bitach od 12 do 15 określa jeden indeks obrazu stanu (0 nie wskazuje obrazu stanu).
Określając wartość I_IMAGECALLBACK zamiast indeksu obrazu, można opóźnić określanie zaznaczonego lub niezaznaczonego obrazu, dopóki element nie zostanie ponownie wyrysowany. I_IMAGECALLBACK kieruje kontrolkę drzewa w celu wysyłania zapytania do aplikacji dla indeksu przez wysłanie komunikatu powiadomienia TVN_GETDISPINFO.
Funkcja składowa GetImageList pobiera uchwyt listy obrazów kontrolki drzewa. Ta funkcja jest przydatna, jeśli musisz dodać więcej obrazów do listy. Aby uzyskać więcej informacji na temat list obrazów, zobacz Using CImageList, CImageList w dokumentacji MFC i Listy obrazów w zestawie WINDOWS SDK.