2011-05-14 42 views
0

我有编辑控制的情况,我需要一些指导。文本编辑器在大多数情况下都能正常工作,但在其他情况下,根据键入前的最后几个字符并基于键入的字符,最后几个字符必须用不同的字符替换。如何操作CEdit的内容?

对我来说看起来很明显的解决方案是在改变内容之前有一个字符缓冲区GetWindowText(),将输入的字符添加到缓冲区中,如有必要操作缓冲区,然后设置SetWimdowText()。

我知道编辑控件有它自己的缓冲区。那么,这是正确的方法来拥有我自己的缓冲区,或者有办法与我共享缓冲区等吗?编辑器可能没有超过4MB的字符。

我需要这个在Windows 7和XP上工作,不喜欢老的ones.I使用MFC。

感谢您的帮助。

回答

1

你不需要你自己的缓冲区,事实上它会有危险的,因为它可能会失去同步。

但是,您不需要一次设置整个编辑文本。从documentation

而且,如果编辑控件是多,获得并通过调用CEdit的成员函数函数getline,SetSel,GetSel和ReplaceSel设置控件的文本的一部分。

ReplaceSel是你在找我想的。虽然本文讲述了多行编辑控件,但是SetSelReplaceSel等可以很好地处理单行编辑控件。