根据MSDN:
当系统创建编辑控件时,它会自动创建文本缓冲区,设置其初始大小,并根据需要增加大小。
是的,只有它没有。我在我的应用程序中有一个显示各种日志的编辑控件,我继续使用EM_SETSEL
消息(在控件的缓冲区中查找文本的末尾)和EM_REPLACESEL
消息添加文本(添加一些给它的文字)。我不知道这是不是最好的方式,但它到目前为止一直运作良好。然而,今天,我发现如果我在编辑控件中有很多日志时尝试附加一些文本,我的应用程序就无法这样做。显示在其中的文本的最大长度等于30k字符,当我尝试追加更多日志时,它只是失败,没有任何反应。首先,我将其设置为read-ony编辑控件,但如果我使其可编辑,则没有任何更改。就在我尝试在其中键入超过30k个字符时,就好像我没有输入任何内容一样。
现在:我知道您可以自己处理缓冲区扩展,但事实并非如此。如果写入它应该自动扩展,为什么不发生?也许我不小心设置了阻止应用程序增加缓冲区大小的东西?我不知道,我找不到任何答案,所以我只是想知道是否有办法让我的应用程序自己扩展缓冲区。
答案 0 :(得分:2)
您需要使用EM_LIMITTEXT
消息设置文本限制。否则:
在调用EM_LIMITTEXT之前,默认限制为 用户可以在编辑控件中输入的文本为32,767个字符。