다음을 통해 공유


트리 컨트롤 레이블 편집

사용자는 TVS_EDITLABELS 스타일이 있는 트리 컨트롤(CTreeCtrl)에서 항목의 레이블을 직접 편집할 수 있습니다. 사용자는 포커스가 있는 항목의 레이블을 클릭하여 편집을 시작합니다. 애플리케이션은 EditLabel 멤버 함수를 사용하여 편집을 시작합니다. 트리 컨트롤은 편집이 시작되고 취소되거나 완료될 때 알림을 보냅니다. 편집이 완료되면 적절한 경우 항목의 레이블을 업데이트해야 합니다.

레이블 편집이 시작되면 트리 컨트롤이 TVN_BEGINLABELEDIT 알림 메시지를 보냅니다. 이 알림을 처리하여 일부 레이블의 편집을 허용하고 다른 레이블의 편집을 방지할 수 있습니다. 0을 반환하면 편집할 수 있으며 0이 아닌 값을 반환하면 이를 방지할 수 있습니다.

레이블 편집이 취소되거나 완료되면 트리 컨트롤이 TVN_ENDLABELEDIT 알림 메시지를 보냅니다. lParam 매개 변수는 NMTVDISPINFO 구조체의 주소입니다. 항목 멤버는 항목을 식별하고 편집된 텍스트를 포함하는 TVITEM 구조체입니다. 적절한 경우 편집된 문자열의 유효성을 검사한 후 항목의 레이블을 업데이트해야 합니다. 편집이 취소된 경우 pszText 멤버 TV_ITEM 는 0입니다.

레이블을 편집하는 동안 일반적으로 TVN_BEGINLABELEDIT 알림 메시지에 대한 응답으로 GetEditControl 멤버 함수를 사용하여 레이블 편집에 사용되는 편집 컨트롤에 대한 포인터를 가져올 수 있습니다. 편집 컨트롤의 SetLimitText 멤버 함수를 호출하여 사용자가 입력하거나 편집 컨트롤을 서브클래스하여 잘못된 문자를 가로채고 카드 수 있는 텍스트의 양을 제한할 수 있습니다. 그러나 편집 컨트롤은 TVN_BEGINLABELEDIT 전송된 후에표시됩니다.

참고 항목

CTreeCtrl 사용
컨트롤