我在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;
}
无论如何我可以直接将文字附加到编辑控件吗?无需获取数据然后再次设置它?
答案 0 :(得分:3)
这样做没有什么特别的错,这是在人类时间执行的。使用它比用户可以观察到的速度更快一点点。作为替代方法,您可以使用EM_SETSEL将选择设置为现有文本的末尾,不选择任何内容,EM_REPLACESEL可以附加文本。 Winforms的TextBoxBase.AppendText()使用的技巧。