树控件标签编辑

用户可以直接在具有 TVS_EDITLABELS 样式的树控件 (CTreeCtrl) 中编辑项标签。 用户通过单击具有焦点的项的标签开始编辑。 应用程序使用 EditLabel 成员函数开始编辑。 树控件在编辑开始以及编辑取消或完成时发送通知。 当编辑完成时,您负责根据需要更新项的标签。

当标签编辑开始时,树控件将发送 TVN_BEGINLABELEDIT 通知消息。 通过处理此通知,您可以允许某些标签的编辑并阻止其他标签的编辑。 返回 0 将允许编辑,返回非零将阻止编辑。

当标签编辑取消或完成时,树控件将发送 TVN_ENDLABELEDIT 通知消息。 lParam 参数是 NMTVDISPINFO 结构的地址。 item 成员是标识项和包含编辑过的文本的 TVITEM 结构。 您负责根据需要更新项的标签(可能在验证编辑过的字符串之后)。 如果取消了编辑,TV_ITEMpszText 成员为 0。

在标签编辑期间,通常为了响应 TVN_BEGINLABELEDIT 通知消息,可以使用 GetEditControl 成员函数获取指向用于标签编辑的编辑控件的指针。 可以调用编辑控件的 SetLimitText 成员函数,以便限制用户可输入的文本的数量或创建编辑控件的子类以截获和丢弃无效字符。 但请注意,编辑控件仅在发送 TVN_BEGINLABELEDIT之后显示。

另请参阅

使用 CTreeCtrl
Controls