繁体   English   中英

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

[英]Winapi: edit control not expanding its buffer

根据MSDN:

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

是的,只有它没有。 我在我的应用程序中有一个显示各种日志的编辑控件,并且我继续使用EM_SETSEL消息(在控件的缓冲区中查找文本的末尾)和EM_REPLACESEL消息(向其附加一些文本)向其添加文本。 我不知道这是不是最好的方式,但它到目前为止一直运作良好。 然而,今天,我发现如果我在编辑控件中有很多日志时尝试附加一些文本,我的应用程序就无法这样做。 显示在其中的文本的最大长度等于30k字符,当我尝试追加更多日志时,它只是失败,没有任何反应。 首先,我将其设置为read-ony编辑控件,但如果我使其可编辑,则没有任何更改。 就在我尝试输入超过30k的字符时,就好像我没有输入任何东西一样。

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

您需要使用EM_LIMITTEXT消息设置文本限制。 除此以外:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM