CRichEditCtrl :: LimitText - 新行的问题

时间:2013-03-05 10:02:49

标签: winapi mfc cricheditctrl

我有一个DB文本字段,大小为500,使用CRichEditCtrl链接到MFC对话框字段。我打电话给CRichEditCtrl::LimitText(500),因此您无法输入比数据库可以处理的文本更多的文本,这可以正常工作,直到您输入新行。每个换行符将字符串的长度增加2,但仅朝500限制计为1 ...例如如果我将编辑控件填充到限制并且有4个换行符,则CString的长度为504。

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

1 个答案:

答案 0 :(得分:1)

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

您还必须注意可能违反限制的粘贴事件,如下所述:How does a CRichEditCtrl know a paste operation has been performed?