Udostępnij przez


Kontrolka drzewa - Elementy nadrzędne i podrzędne

Każdy element w kontrolce drzewa (CTreeCtrl) może mieć listę elementów podrzędnych, które są nazywane elementami podrzędnymi skojarzonymi z nim. Element, który ma co najmniej jeden element podrzędny, jest nazywany elementem nadrzędnym. Element podrzędny jest wyświetlany poniżej elementu nadrzędnego i wcięcie wskazuje, że jest podporządkowany elementowi nadrzędnemu. Element, który nie ma elementu nadrzędnego, znajduje się w górnej części hierarchii i jest nazywany elementem głównym.

W dowolnym momencie stan listy elementów podrzędnych elementu nadrzędnego można rozwinąć lub zwinąć. Po rozwinięciu stanu elementy podrzędne są wyświetlane poniżej elementu nadrzędnego. Gdy zostanie zwinięte, elementy podrzędne nie są wyświetlane. Lista automatycznie przełącza się między rozwiniętymi i zwiniętymi stanami, gdy użytkownik kliknie dwukrotnie element nadrzędny lub, jeśli element nadrzędny ma styl TVS_HASBUTTONS , gdy użytkownik kliknie przycisk skojarzony z elementem nadrzędnym. Aplikacja może rozwinąć lub zwinąć elementy podrzędne przy użyciu funkcji członkowskiej Rozwiń.

Element można dodać do kontrolki drzewa, wywołując funkcję składową InsertItem . Ta funkcja zwraca uchwyt typu HTREEITEM , który jednoznacznie identyfikuje element. Podczas dodawania elementu należy określić uchwyt elementu nadrzędnego nowego elementu. Jeśli określisz NULL lub TVI_ROOT zamiast uchwytu elementu nadrzędnego w strukturze TVINSERTSTRUCT lub parametrze hParent, element zostanie dodany jako element główny.

Kontrolka drzewa wysyła wiadomość powiadomienia TVN_ITEMEXPANDING gdy lista elementów podrzędnych elementu nadrzędnego zostanie rozwinięta lub zwinięta. Powiadomienie daje możliwość zapobieżenia zmianie lub ustawienia dowolnych atrybutów elementu nadrzędnego, które zależą od stanu listy elementów podrzędnych. Po zmianie stanu listy kontrolka drzewa wysyła komunikat powiadomienia TVN_ITEMEXPANDED .

Po rozwinięciu listy elementów podrzędnych jest ona wcięta względem elementu nadrzędnego. Możesz ustawić wielkość wcięcia za pomocą funkcji członkowskiej SetIndent lub pobrać bieżącą wielkość za pomocą funkcji członkowskiej GetIndent.

Zobacz także

Korzystanie z CTreeCtrl
Sterowanie