Edytowanie etykiety kontrolki drzewa
Użytkownik może bezpośrednio edytować etykiety elementów w kontrolce drzewa (CTreeCtrl), która ma styl TVS_EDITLABELS . Użytkownik rozpoczyna edycję, klikając etykietę elementu, który ma fokus. Aplikacja rozpoczyna edytowanie przy użyciu funkcji składowej EditLabel . Kontrolka drzewa wysyła powiadomienie po rozpoczęciu edycji i po anulowaniu lub zakończeniu. Po zakończeniu edycji odpowiadasz za aktualizowanie etykiety elementu, jeśli jest to konieczne.
Po rozpoczęciu edytowania etykiety kontrolka drzewa wysyła komunikat powiadomienia TVN_BEGINLABELEDIT . Przetwarzając to powiadomienie, możesz zezwolić na edytowanie niektórych etykiet i uniemożliwić edytowanie innych. Zwracanie wartości 0 umożliwia edycję i zwracanie wartości nonzero uniemożliwia jej używanie.
Po anulowaniu lub zakończeniu edytowania etykiety kontrolka drzewa wysyła komunikat powiadomienia TVN_ENDLABELEDIT . Parametr lParam jest adresem struktury NMTVDISPINFO . Element członkowski elementu jest strukturą TVITEM , która identyfikuje element i zawiera edytowany tekst. Użytkownik jest odpowiedzialny za aktualizowanie etykiety elementu, jeśli jest to konieczne, być może po zweryfikowaniu edytowanego ciągu. Element członkowski pszText elementu TV_ITEM
to 0, jeśli edytowanie zostało anulowane.
Podczas edytowania etykiet zazwyczaj w odpowiedzi na komunikat powiadomienia TVN_BEGINLABELEDIT można uzyskać wskaźnik do kontrolki edycji używanej do edytowania etykiet przy użyciu funkcji składowej GetEditControl . Możesz wywołać funkcję składową SetLimitText kontrolki edycji, aby ograniczyć ilość tekstu, którą użytkownik może wprowadzić lub podklasować kontrolkę edycji w celu przechwycenia i odrzucenia nieprawidłowych znaków. Należy jednak pamiętać, że kontrolka edycji jest wyświetlana dopiero powysłaniu TVN_BEGINLABELEDIT .