将文本追加到编辑控件? (Windows API)

时间:2012-01-28 13:12:16

标签: c windows winforms winapi

我在C中创建了一个简单的表单,并为其添加了一些控件。但是使用编辑控件,我无法向其添加文本,例如List Box控件。我所能做的就是从编辑控件中获取文本,向其中添加所需的行,然后再次设置文本。这是我为完成这项工作而编写的代码。

void AddText(HWND EditControl, char *NewData)
{
    int TextLen = GetWindowTextLength(EditControl);
    char *Result = malloc(TextLen + strlen(NewData) + 1);
    if (Result == NULL) return;
    GetWindowText(EditControl, Result, TextLen + 1);
    memcpy(&Result[TextLen], NewData, strlen(NewData));
    SetWindowText(EditControl, FinalText);
    free(Result);
    return;
}

无论如何我可以直接将文字附加到编辑控件吗?无需获取数据然后再次设置它?

1 个答案:

答案 0 :(得分:3)

这样做没有什么特别的错,这是在人类时间执行的。使用它比用户可以观察到的速度更快一点点。作为替代方法,您可以使用EM_SETSEL将选择设置为现有文本的末尾,不选择任何内容,EM_REPLACESEL可以附加文本。 Winforms的TextBoxBase.AppendText()使用的技巧。