在基于MFC对话框的应用程序中,我有CRichEditCtrl。
我希望限制用户输入的最大文本数为1000,因此我调用了CRichEditCtrl::LimitText(1000)。
然后我调用了具有超过1000个字符的CRichEditCtrl::SetWindowText(),现在CRichEditCtrl可以驱散超过1000个字符。
为什么SetWindowText不考虑LimitText值。
提前谢谢。
发布于 2018-06-05 12:05:11
对SetWindowText的调用是干扰它的原因。这是故意的行为。
来自文档
更改文本限制只限制用户可以输入的文本。它对编辑控件中已经存在的任何文本没有影响,也不影响CWnd中的SetWindowText成员函数复制到编辑控件中的文本的长度。如果应用程序使用SetWindowText函数将比调用LimitText中指定的文本更多的文本放入编辑控件,则用户可以删除编辑控件中的任何文本。但是,文本限制将阻止用户用新文本替换现有文本,除非删除当前选择会导致文本低于文本限制。
https://stackoverflow.com/questions/50698900
复制相似问题