Winapi:编辑控件不扩展其缓冲区



根据MSDN:

当系统创建编辑控件时,它会自动创建一个文本缓冲区,设置其初始大小,并根据需要增加大小。

是的,只是没有。我的应用程序中有一个显示各种日志的编辑控件,我不断使用EM_SETSEL消息(在控件的缓冲区中找到文本的末尾)和EM_REPLACESEL消息(在其中添加一些文本)向其添加文本。我不知道这是否是最好的方法,但到目前为止效果很好。然而,今天我发现,如果我试图在编辑控制中已经有很多日志的情况下添加一些文本,我的应用程序就会失败。其中显示的最大文本长度等于30k个字符,当我试图添加更多日志时,它只是失败了,什么也没发生。起初,我将其设置为只读编辑控件,但如果使其可编辑,则不会发生任何更改。就在我尝试在其中键入超过3万个字符时,它表现得好像我什么都没键入。

现在:我知道你可以自己处理缓冲区扩展,但这里不是这样。如果写着它应该自动扩展,为什么不发生?也许我不小心设置了一些东西,阻止应用程序增加缓冲区的大小?我不知道,也找不到任何答案,所以我只是想知道是否有任何方法可以让我的应用程序自行扩展缓冲区。

您需要设置EM_LIMITTEXT消息的文本限制。否则:

在调用EM_LIMITTEXT之前用户可以在编辑控件中输入的文本为32767个字符。

最新更新