用户可以直接编辑具有TVS_EDITLABELS样式的树控件(CTreeCtrl)中项的标签。 用户通过单击具有焦点的项的标签开始编辑。 应用程序开始使用 EditLabel 成员函数进行编辑。 树控件在编辑开始时以及取消或完成通知时发送通知。 完成编辑后,你负责更新项的标签(如果适用)。
标签编辑开始时,树控件会发送 TVN_BEGINLABELEDIT 通知消息。 通过处理此通知,可以允许编辑某些标签并阻止编辑其他标签。 返回 0 允许编辑,并且返回非零会阻止它。
当标签编辑取消或完成时,树控件会发送 TVN_ENDLABELEDIT 通知消息。
lParam 参数是 NMTVDISPINFO 结构的地址。
项成员是一个 TVITEM 结构,用于标识该项并包括编辑的文本。 在验证编辑后的字符串后,你负责更新项的标签(如果适用)。 如果取消编辑, 则 pszText 成员为 TV_ITEM
0。
在标签编辑期间,通常是为了响应 TVN_BEGINLABELEDIT 通知消息,可以使用 GetEditControl 成员函数获取指向用于标签编辑的编辑控件的指针。 可以调用编辑控件的 SetLimitText 成员函数来限制用户可输入的文本量或将编辑控件子类化以截获和丢弃无效字符。 但是,请注意,仅在发送TVN_BEGINLABELEDIT后才会显示编辑控件。