我有一个大小为500的DB文本字段,它使用CRichEditCtrl链接到MFC对话框字段。我调用CRichEditCtrl::LimitText(500),所以您不能输入比DB能够处理的更多的文本,这很好,直到您输入新行。每一行新增加的字符串长度2,但只计算为1的500限制.例如,如果我将编辑控件填充到极限,并有4行新行,则CString的长度为504。
我特别希望控件只允许用户输入不超过500个字符的文本,而不是截断他们输入的内容。我如何才能最好地做到这一点?注意,我需要按原样保存CString的内容,在DB中不能用\n替换\r\n或类似的东西。
发布于 2013-03-07 13:16:19
覆盖OnChar,计算文本中的新行数,然后设置ctrl.LimitText(500 - count).这样,您就可以避免打破DBs 500字符的限制。
您还必须监视可能打破限制的粘贴事件,如以下所述:How does a CRichEditCtrl know a paste operation has been performed?
https://stackoverflow.com/questions/15220903
复制相似问题