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

PookyFan

根据MSDN:

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

是的,只有事实并非如此。我的应用程序中有一个显示各种日志的编辑控件,并且我不断使用EM_SETSELmessage(在控件缓冲区中查找文本的结尾)和EM_REPLACESELmessage(向其中添加一些文本)向其中添加文本。我不知道这是否是最好的方法,但到目前为止效果很好。但是,今天我发现,如果在编辑控件中已经有很多日志的情况下尝试添加一些文本,我的应用程序将无法执行此操作。其中显示的文本最大长度等于30k个字符,当我尝试附加更多日志时,它只是失败,什么也没有发生。最初,我将其设置为只读编辑控件,但是如果将其设置为可编辑,则不会进行任何更改。当我尝试在其中键入超过30k个字符时,就好像我没有键入任何内容一样。

现在:我知道您可以自己处理缓冲区扩展,但是事实并非如此。如果写成应该自动扩展,为什么不发生呢?也许我不小心设置了一些阻止应用程序增大缓冲区大小的东西?我不知道,也找不到任何答案,所以我只是想知道是否有任何方法可以使我的应用程序自行扩展该缓冲区。

乔纳森·波特(Jonathan Potter)

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

在调用EM_LIMITTEXT之前,用户可以在编辑控件中输入的文本量的默认限制是32,767个字符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章