1

我有一个大小为 500 的 DB 文本字段,使用CRichEditCtrl. 我打电话给CRichEditCtrl::LimitText(500)你,所以你不能输入比数据库可以处理的更多的文本,这工作得很好,直到你输入换行符。每个换行符将字符串的长度增加 2,但在 500 限制中仅计为 1...例如,如果我将编辑控件填充到限制并有 4 个换行符,CString则长度为 504。

我特别希望控件只允许用户输入最多 500 个字符的文本,而不是截断他们输入的内容。我怎样才能最好地做到这一点?请注意,我需要按原样保存内容,而不是在数据库中CString替换或类似的内容。\r\n\n

4

1 回答 1

1

覆盖OnChar,计算文本中的换行数,然后设置ctrl.LimitText(500 - count)。这样您就可以避免破坏 DBs 500 字符的限制。

您还必须注意可能打破限制的粘贴事件,如下所述:CRichEditCtrl 如何知道已执行粘贴操作?

于 2013-03-07T13:16:19.820 回答