TTreeview限制节点编辑文本长度

TTreeview limit the node editing text length

我在 C++ Builder XE7 中使用 TTreeView。我允许用户在某些节点上编辑节点文本,但我需要将他们可以输入的字符数限制为 10 个。

我应该如何以及何时获取编辑控件并设置它的文本限制?

在给它的 OnEditing event, you can send a TVM_GETEDITCONTROL message to the TreeView to get the HWND of its edit field, then you can send a EM_LIMITTEXT 消息中。

void __fastcall TForm1::TreeView1Editing(TObject* Sender, TTreeNode* Node, bool &AllowEdit)
{
    AllowEdit = ...;
    if (AllowEdit)
    {
        HWND hEdit = TreeView_GetEditControl(TreeView1->Handle);
        SendMessage(hEdit, EM_LIMITTEXT, 10, 0);
    }
}